在 mongodb 中,我们可以将自己的值分配给 _id 字段,并且“_id”字段值可以是数组以外的任何类型,只要它是唯一的——来自docs。
但是在我的实时数据库中,我可以看到一些记录重复如下,
db.memberrecords.find().limit(2).forEach(printjson)
{
"_id" : "999783",
"Memberid" : "999783",
"Name" : "ASHEESH SHARMA",
"Gender" : "M",
}
{
"_id" : "999783",
"Memberid" : "999783",
"Name" : "Sanwal Singh Meena",
"Gender" : "M",
}
在上面的记录中,相同的 _id 值在表中插入了两次。当我使用本地数据库进行测试时,它不允许插入相同的 _id 记录并抛出如下错误,
E11000 duplicate key error index: mongoms.memberrecords.$_id_ dup key: { : "999783" }
以下是我的 live memberrecords 表的索引(供您参考),
db.memberrecords.getIndexes()
[
{
"name" : "_id_",
"ns" : "mongoms.memberrecords",
"key" : {
"_id" : 1
},
"v" : 0
},
{
"_id" : ObjectId("4f0bcdf2b1513267f4ac227c"),
"ns" : "mongoms.memberrecords",
"key" : {
"Memberid" : 1
},
"name" : "Memberid_1",
"unique" : true,
"v" : 0
}
]
注意:我有这个表的两个分片。
请对此有任何建议,