2
我有一個想插入到MongoDB集合中的對象數組,但是我想檢查每個項目是否已經存在於集合中。如果它不存在,則插入它,如果它存在,則不要插入它。用MongoDB插入項目數組
經過一些谷歌搜索,它看起來像我最好使用更新方法與upsert屬性設置爲true。
這似乎工作正常,如果我通過它一個單一的項目,以及如果我遍歷我的數組,並一次插入一個項目,但我不知道這是否是正確的方法來做到這一點,或者如果它是最有效的。下面是我目前在做什麼:
var data = [{}, {}, ... {}];
for (var i = 0; i < data.length; i++) {
var item = data[i];
collection.update(
{userId: item.id},
{$setOnInsert: item},
{upsert: true},
function(err, result) {
if (err) {
// Handle errors here
}
});
}
是遍歷我的數組和插入他們一個接一個最有效的方式做到這一點,還是有更好的辦法?
完美,這正是我需要的。我的確開始嘗試插入整個數組,當它遇到重複時失敗並停止,這就是爲什麼我想我可能需要按照我在問題中概述的方式來完成它。我不知道你可以使用無序插入來繼續插入,即使一些插入失敗。謝謝! – joshfarrant