mongodbでは、独自の値を_idフィールドに割り当てることができ、 "_id"フィールドの値は、 - docsより。mongodb "_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
}
]
、(ご参考)私のライブmemberrecordsテーブルのインデックスであります
注:私はこのテーブルのために2つのシャーディングを持っています。
この上の任意の提案、
私はmongoを検索するためにphpを使用しています。だから、重複挿入を避けるために、私はレコードを挿入する前に選択クエリを行うコードを変更する必要があり、レコードが利用可能な場合、私はレコードを更新する必要があります。 重複挿入を避けるための簡素化/回避策はありますか? – Raja
シャードキーとして一意にする必要があるフィールドを使用します。 – kristina