Mongo在插入时无法创建唯一的_id

时间:2014-02-04 11:58:32

标签: node.js mongodb duplicates

我正在构建一个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) {...

这很奇怪。关于如何进行调试的任何想法?

如果我从命令行手动插入,它可以工作,没有重复密钥。

1 个答案:

答案 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) {...