Я использую addToSet
команду (добавить UpdatedData
):db.collection.find возвращает несколько записей после 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
создает новый документ с новым _id
, вместо того, чтобы обновить старую запись (ObjectId("5648599f71efc79c660f76d4")
). Но я вижу только обновленный документ в robomongo
(ObjectId("56485922143a886f66c2f8bb")
). Любые идеи, почему это происходит и как я могу предотвратить это поведение?
Хорошо, но я вижу только обновленное в robomongo, странно, что запрос возвращает два документа? – user1665355
@ user1665355 Какой драйвер mongodb вы используете? какая версия mongodb? – webdeb
3.0 версия. Я попробую ваше решение – user1665355