目錄 1. 基本數據類型 1.1 String 1.2 Number 1.3 Boolean 1.4 Date 1.5 Null 1.6 ObjectId 1.7 Array 1.8 Binary Data 1.9 Object 2. 特殊數據類型 2.1 Regular Expression 2.2 JavaScript 2.3 Symbol 2.4 Decimal128 2.5 Timestamp 2.6 MinKey/MaxKey 2.7 DBPointer 3. 常用字段類型示例 4. 注意事項
1. 基本數據類型
1.1 String
1.描述:字符串類型,用于存儲文本數據,支持 UTF-8 編碼。 2.示例:“name”: “Alice”
1.2 Number
1.Int32/Int64: 整數類型(32 位或 64 位)。“age”: 30 2.示例:Double: 雙精度浮點數。“height”: 1.75
1.3 Boolean
1.布爾類型,用于存儲 true 或 false。 2.示例:“isStudent”: true
1.4 Date
1.描述:日期類型,用于存儲日期和時間,存儲為 UTC 時間。 2.示例:“createdAt”: ISODate(“2023-10-01T00:00:00Z”)
1.5 Null
1.描述:空值類型,用于表示字段值為空或不存在。 2.示例:“middleName”: null
1.6 ObjectId
1.描述:唯一標識符類型,MongoDB 默認的 _id 字段類型,用于唯一標識文檔。 2.示例:“_id”: ObjectId(“6523f1c7e8b8d4a5b3c1d2e3”)
1.7 Array
1.描述:數組類型,用于存儲一組值,可以是任意數據類型的混合。 2.示例:“tags”: [“mongodb”, “database”, “nosql”]
1.8 Binary Data
1.描述:二進制數據類型,用于存儲二進制數據(如圖片、文件等)。 2.示例:“imageData”: BinData(0, “base64data==”)
1.9 Object
1.描述:嵌套文檔類型,用于存儲嵌套的鍵值對(類似于 JSON 對象)。 2.示例:“address”: { “city”: “New York”, “zip”: “10001” }
2. 特殊數據類型
2.1 Regular Expression
1.描述:正則表達式類型,用于存儲正則表達式模式。 2.示例:“pattern”: /ab*c/i
2.2 JavaScript
1.描述:JavaScript 代碼類型,用于存儲 JavaScript 代碼或函數。 2.示例:“script”: function() { return 1 + 1; }
2.3 Symbol
1.描述:符號類型,用于存儲唯一的符號值(通常用于特定語言環境)。 2.示例:“status”: Symbol(“active”)
2.4 Decimal128
1.描述:高精度十進制數類型,用于存儲需要高精度的十進制數值。 2.示例:“price”: Decimal128(“19.99”)
2.5 Timestamp
1.描述:時間戳類型,用于存儲內部時間戳(與 Date 類型不同)。 2.示例:“timestamp”: Timestamp(1696156800, 1)
2.6 MinKey/MaxKey
1.描述:特殊鍵類型,用于比較操作,分別表示最小值和最大值。 2.示例:“rank”: MinKey 或 “rank”: MaxKey
2.7 DBPointer
1.描述:數據庫指針類型,用于存儲指向另一個集合中文檔的引用(已不推薦使用)。 2.示例:“ref”: DBPointer(“collectionName”, ObjectId(“…”))
3. 常用字段類型示例
{"_id": ObjectId("6523f1c7e8b8d4a5b3c1d2e3"),"name": "Alice","age": 30,"height": 1.75,"isStudent": true,"createdAt": ISODate("2023-10-01T00:00:00Z"),"middleName": null,"tags": ["mongodb", "database", "nosql"],"address": {"city": "New York","zip": "10001"},"price": Decimal128("19.99"),"status": "active"
}
4. 注意事項
1.靈活性:MongoDB 的文檔結構是動態的,字段類型可以在不同文檔中不同,甚至同一個文檔中的字段類型也可以不同(雖然不推薦這樣做)。 2.類型檢查:MongoDB 不會強制檢查字段類型,但應用程序邏輯應確保數據的一致性。 3.ObjectId:默認情況下,MongoDB 會為每個文檔生成一個唯一的 _id 字段,類型為 ObjectId。