在需要唯一索引时将多个文档插入到MongoDB中

我的collectionsPphone领域有一个独特的索引:

 db.P.ensureIndex( { phone: 1 }, { unique: true, dropDups: true } ) db.P.insert( {phone:"555-1234"} ) 

如果我插入一组文档,甚至一个文档有一个重复的键:

 db.P.insert( [{phone:"911"},{phone:"555-1234"}] ) > E11000 duplicate key error index: test.P.$phone_1 dup key: { : "555-1234" } 

整个插入失败,并且没有插入有效的号码。

问题:如何进行批量插入,确保插入了有效的文档,并获取哪些插入失败的信息? 用于显示nodejs api代码的奖励点。

MongoDB驱动程序有一个“ContinueOnError”选项,会导致mongo跳过具有重复唯一键的logging。 至于识别什么被跳过,每个文档:“如果在批量插入过程中发生多个错误,客户端只收到最后生成的错误( http://docs.mongodb.org/manual/core/bulk-inserts/ )。

对于Node.js,这将是类似的东西

 db.P.insert( [{phone:"911"},{phone:"555-1234"}], {continueOnError:true} ) 

http://mongodb.github.io/node-mongodb-native/api-generated/collection.html#insert