当我尝试使用update()修改MongoDB文档时,我发现了一些奇怪的事情如下:
t.find()
t.insert({f1:"aaaa",f2:"bbbb"})
t.find()
{ "_id" : ObjectId("5322b875ee8d53ebb10c48c7"), "f1" : "aaaa", "f2" : "bbbb" }
t.update({f1:"dddd"},{f2:"bbb6",f1:"dddd"},true)
t.find()
{ "_id" : ObjectId("5322b875ee8d53ebb10c48c7"), "f1" : "aaaa", "f2" : "bbbb" }
{ "f2" : "bbb6", "f1" : "dddd" }
t.update({f1:"cccc"},{f2:"bbb6",f1:"cccc"},true)
E11000 duplicate key error index: local.test.$_id_ dup key: { : null }
所以,我的问题是为什么MongoDB创建一个没有_id
的文档?而且,当我再次这样做时,它为什么会失败?
这是一个bug,因为在MongoDB文档中,确保每个文档都有一个唯一的_id
字段吗?