我想使用update
與upsert
whiwle提供我自己的_id
作爲關鍵。與upsert的mongodb更新:真正的行爲不如插入
事實證明,它只能當我使用insert
,如果upsert:true
提供有更新,新插入的文檔獲取蒙戈自動生成的id
。
參見下文:
PRIMARY> db.internal.update({_id: "my_id"},{ "value": "xyz"}, {upsert:true})
PRIMARY> db.internal.find()
{ "_id" : ObjectId("50c6cbb21d8b512bc0fe9576"), "value" : "xyz" }
PRIMARY> db.internal.insert({_id: "my_id2", "value": "xyz"})
PRIMARY> db.internal.find()
{ "_id" : ObjectId("50c6cbb21d8b512bc0fe9576"), "value" : "xyz" }
{ "_id" : "my_id2", "value" : "xyz" }
這是一個功能或一個錯誤?
據我在Mongo's docs看,這應當制定
你可以嘗試一下你的版本,看看它有什麼區別嗎? –
查看已更新的回答 –
很酷。請注意,這個{upsert:true}與true,對於遍佈網絡的用戶答案也是一個常見的錯誤。 –