Node.js 在nodejs mongodb驱动程序中插入许多无序/连续错误
这适用于我的本地:Node.js 在nodejs mongodb驱动程序中插入许多无序/连续错误,node.js,mongodb,bulkinsert,Node.js,Mongodb,Bulkinsert,这适用于我的本地: db.collection('test').insert(docsArray, {ordered: false}); Mongo v2.6.10 NodeJS驱动程序v2.0.45 但是,相同的代码在服务器上失败: Mongo v2.6.11 NodeJS驱动程序v2.0.45 我不明白为什么 关于insert的说法已经被证明有利于insertOne/insertMany/bulkWrite。因此,我尝试使用这些新功能,但没有用。我希望它悄悄地跳过错误并插入剩余的文档。 现
db.collection('test').insert(docsArray, {ordered: false});
Mongo v2.6.10
NodeJS驱动程序v2.0.45
但是,相同的代码在服务器上失败:
Mongo v2.6.11
NodeJS驱动程序v2.0.45
我不明白为什么
关于insert
的说法已经被证明有利于insertOne
/insertMany
/bulkWrite
。因此,我尝试使用这些新功能,但没有用。我希望它悄悄地跳过错误并插入剩余的文档。
现在,insertMany
没有无序插入,而bulkWrite
没有insertMany
目前的官方做法是什么?找到了:
var bulk = db.collection('test').initializeUnorderedBulkOp();
for (var i = 0; i < docs.length; i++) {
bulk.insert(docs[i]);
};
bulk.execute(function (err, result) {
db.close();
});
var bulk=db.collection('test')。初始化eunorderedbulkop();
对于(变量i=0;i
你试过{w:1,keepGoing:true}
而不是{ordered:false}
?@marekful我刚刚试过(用insert
和insertMany
)。它失败了。在文档中有一些例子是关于keepGoing的(用于插入)。不适用于我。。。使用完全相同的代码。。只有一条记录是插入的我在生产中使用它,因为我发现了它。所以我不得不说,你可能遗漏了一些东西,或者使用不当。请检查bulk.execute返回的错误。我正以完全相同的方式使用它。但是,我的错误出现在自定义索引上,而不是_id字段。我在user.name字段上有一个唯一的索引设置,它应该是唯一的字段。每次运行execute时,插入1个文档后,如果发现重复的密钥,它总是失败。