我正在构建一个node.js应用程序,并尝试一次向集合中插入多个文档,但它失败并显示错误
E11000 duplicate key error index: mydb.mycollection.$_id_ dup key: { : ObjectId('52f0ce126bee2f405a755c6b') }
这是给我错误的代码
var my_docs = new Array;
var tmp = {'name':'','address':''};
for (var i=0; i < limit ; i++)
{
my_docs.push(tmp);
}
db.collection('mycollection').insert(my_docs,{w:1}, function(err, result) {...
这很奇怪。关于如何进行调试的任何想法?
如果我从命令行手动插入,它可以工作,没有重复密钥。
答案 0 :(得分:3)
我认为这个问题是由于你的tmp var引用了你的for循环中的同一个对象,请尝试以下方法:
var my_docs = new Array;
for (var i=0; i < limit ; i++)
{
var tmp = new Object({'name':'','address':''});
my_docs.push(tmp);
}
db.collection('mycollection').insert(my_docs,{w:1}, function(err, result) {...