後db.collection.find返回多個記錄(添加UpdatedData
):我用<code>addToSet</code>命令addToSet
MyTable.update({ "UrlLink": "http://www.someurl.com"}, {
$addToSet: {
UpdatedData: {
TheDate: ThisDate,
NewInfo: ThisInfo
}
}
},
function (err, result) {
next(err,result)
}
);
但後來,當我做了查詢(UpdatedData
添加到我的文檔之後),我看到它返回兩個文件。取而代之的只有一個更新document
:
db.MyTable.find({"UrlLink": "http://www.someurl.com"})
{ "_id" : ObjectId("56485922143a886f66c2f8bb"), "UrlLink" : "http://www.someurl.com", "Stuff" : "One", "UpdatedData" : [ { "TheDate" : "11/15/2015", "NewInfo" : "Info1", "_id" : ObjectId("5648599a71efc79c660f76d3") } ] }
{ "_id" : ObjectId("5648599f71efc79c660f76d4"), "UrlLink" : "http://www.someurl.com", "Stuff": "One", "UpdatedData" : [ ] }
如此看來,addToSet
創造,而不是更新舊記錄(ObjectId("5648599f71efc79c660f76d4")
)與新_id
一個新的文檔。但我只看到robomongo
(ObjectId("56485922143a886f66c2f8bb")
)中的更新文檔。任何想法爲什麼會發生這種情況,以及我如何防止這種行爲?
好吧,但我只看到更新的robomongo,奇怪的是,查詢返回兩個文件? – user1665355
@ user1665355您正在使用哪個mongodb驅動程序?哪個mongodb版本? – webdeb
3.0版本。我會嘗試你的解決方案 – user1665355