文档主键
- 文档主键时
_id
,如果插入文档时,没有传入则自动生产ObjectId
作为文档主键 - 文档主键要求在集合中唯一
- 文档主键可以时另一个文档,被当作字符串对象处理
ObjectId对象
-
获取文档主键
ObjectId()
-
已知某段objectId中的字符串,创建文档对象
ObjectId("xxxxxxxxxxxxxxxxxxxxx")
-
获取
objectId
的创建时间ObjectId("xxxxxxxxxxxxxxxxxxxxx").getTimestamp()
复合主键
-
主键时另一个文档,复合文档中键值对顺序也是复合主键的一部分
db.students.insert({ // id是另一个文档 "_id": {"name":"a", "age": 19}, "name": "hai" }) // 查看记录 db.students.find() // 这个是可以插入的,_id复合主键中文档字段顺序不一致,则是唯一 db.students.insert({ // "_id": { "age": 19, "name":"a"}, "name": "hai" }) // 查看记录 db.students.find()