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