MongoDB插入多个文件,其中可以复制_id

Joe*_*oel 2 javascript error-handling performance mongodb

我正在使用以下内容将一个对象数组插入MongoDB(我正在分配一个唯一的_id),这是有效的:

collection.insert(records, {w:1}, function(err, result) 
Run Code Online (Sandbox Code Playgroud)

某些记录可能有重复的_id(意味着记录已经在数据库中).这是我得到的错误:

MongoError: E11000 duplicate key error index: heroku_app23495772.records.$_id_  dup key: { : "2b09aadb900f0e5112b6d03f665fb946" }
Run Code Online (Sandbox Code Playgroud)

即使遇到第一个对象(重复)上的错误,mongoDB仍会在此数组中插入剩余的对象吗?我真的不介意错误,如果它不会阻止插入不重复的剩余文件或对其他任何负面影响.

或者,我应该在发送对象数组之前逐字查询每个对象的数据库以查看它是否存在?我认为这样做对性能来说不是最好的.

我只想弄清楚处理这些重复项的最有效方法.

Joe*_*oel 5

好的,我终于有了这个工作.包括continueOnError: true将继续插入批次的其余部分,即使有些未插入,因为它们是重复的.

collection.insert(records, {continueOnError: true}, function(err, result) {
Run Code Online (Sandbox Code Playgroud)