我正在使用以下内容将对象数组插入到MongoDB中(我正在分配一个唯一的_id),它正在工作:
collection.insert(records, {w:1}, function(err, result)
某些记录可能具有重复的_id(这意味着该记录已在数据库中)。这是我得到的错误:
MongoError: E11000 duplicate key error index: heroku_app23495772.records.$_id_ dup key: { : "2b09aadb900f0e5112b6d03f665fb946" }
即使遇到第一个对象(重复)的错误后,mongoDB仍会在此数组中插入其余对象吗?如果错误不会阻止插入非重复项的剩余文档或对其他任何事项造成负面影响,我真的不介意该错误。
或者,我应该在发送对象数组之前从字面上查询数据库以查看每个对象是否存在吗?我认为这样做并不是最好的性能。
我只是想找出处理这些重复项的最有效方法。
最佳答案
好的,我终于可以使用它了。包括continueOnError: true
将继续插入该批处理的其余部分,即使由于重复而未插入其中的一部分也是如此。
collection.insert(records, {continueOnError: true}, function(err, result) {