目录 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。