В mongodb мы можем присвоить собственное значение полю _id, и значение поля "_id" может быть любого типа, кроме массивов, при условии, что оно уникально - из документов .
Но в моей действующей базе данных я вижу, что некоторые записи были продублированы следующим образом:
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" }
Ниже приведены индексы для моей действующей таблицы членских записей (для вашей справки),
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
}
]
Примечание: у меня есть два шардинга для этой таблицы.
Любые предложения по этому вопросу,