1
在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" }
下面是我的生活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
}
]
注意:我有两张这张桌子的分片。
对此的任何建议请
我使用PHP来查询mongo。所以为了避免重复插入,我需要更改插入记录之前将执行选择查询的代码,并且如果记录可用,那么我需要更新记录。 是否有任何简化/解决方法可用于避免重复插入? – Raja 2012-03-14 15:36:37
使用您需要唯一的字段作为分片键。 – kristina 2012-03-14 18:37:16