具有唯一索引的MongoDB批插入

具有唯一索引的MongoDB批插入,mongodb,mongodb-query,Mongodb,Mongodb Query,假设我有一个要插入的文档列表 这些文件的结构如下 { url: string, visited: boolean } 我在url键上有一个唯一的索引 当我插入文档时,如果发现1个重复,整个操作将中止 是否有一种方法,我仍然可以使用批插入,它将插入所有不是重复的文档 作为一种解决方法,我必须一个接一个地插入文档,我担心插入开销会对性能造成影响。必须考虑使用upsert吗 假设我在名为a的字段上有一个具有唯一索引的集合,如 >db.collection.getIndexes() [ { “

假设我有一个要插入的文档列表

这些文件的结构如下

{
  url: string,
  visited: boolean
}
我在
url
键上有一个唯一的索引

当我插入文档时,如果发现1个重复,整个操作将中止

是否有一种方法,我仍然可以使用批插入,它将插入所有不是重复的文档


作为一种解决方法,我必须一个接一个地插入文档,我担心插入开销会对性能造成影响。

必须考虑使用upsert吗

假设我在名为
a
的字段上有一个具有唯一索引的集合,如

>db.collection.getIndexes()
[
{
“v”:1,
“关键”:{
“_id”:1
},
“姓名”:“身份证”,
“ns”:“test.collection”
},
{
“v”:1,
“独一无二”:没错,
“关键”:{
“a”:1
},
“名称”:“a_1”,
“ns”:“test.collection”
}
]
以及以下文档数组:

var docs=[{'a':3},{'a':4},{'a':3}];
您可以使用API将这些文档大容量插入到您的集合中,但您需要使用API来允许MongoDB继续处理列表中的其余写入操作,即使在处理其中一个写入操作期间发生错误

var docs=[{a:3},{a:4},{a:3}]
var bulk=db.collection.initializeUnderedBulkop();
对于(var ind=0;ind