目录
-
-
-
-
- [1. 基本数据类型](#1. 基本数据类型)
-
- [1.1 String](#1.1 String)
- [1.2 Number](#1.2 Number)
- [1.3 Boolean](#1.3 Boolean)
- [1.4 Date](#1.4 Date)
- [1.5 Null](#1.5 Null)
- [1.6 ObjectId](#1.6 ObjectId)
- [1.7 Array](#1.7 Array)
- [1.8 Binary Data](#1.8 Binary Data)
- [1.9 Object](#1.9 Object)
- [2. 特殊数据类型](#2. 特殊数据类型)
-
- [2.1 Regular Expression](#2.1 Regular Expression)
- [2.2 JavaScript](#2.2 JavaScript)
- [2.3 Symbol](#2.3 Symbol)
- [2.4 Decimal128](#2.4 Decimal128)
- [2.5 Timestamp](#2.5 Timestamp)
- [2.6 MinKey/MaxKey](#2.6 MinKey/MaxKey)
- [2.7 DBPointer](#2.7 DBPointer)
- [3. 常用字段类型示例](#3. 常用字段类型示例)
- [4. 注意事项](#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。