【发布时间】:2015-07-20 05:25:27
【问题描述】:
我有一个要插入到 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
}
});
}
遍历我的数组并一个接一个地插入它们是最有效的方法,还是有更好的方法?
【问题讨论】: