与mongodbmeteor采集中的重复密钥

我目前正在开发一个meteor应用程序,有时我的服务器出现这个错误:

调用方法'/ songs / insert'时出现exceptionMongoError:E11000重复键错误索引:megan.songs。$ id dup键:{:“399dc507-b1fe-4e0f-a2c4-fa3dabd2bdf5”}

插入方法是这样调用的:

Songs.insert({name:vid,score:weight,title:title,listkey:Session.get('listkey')});

有谁能够帮助我?

提前致谢,

Topicus

哪个键重复? ObjectId(_id)字段不能重复。 它是listkey字段? 也许你有一个唯一的索引设置在listkey字段,并以某种方式你的Session.get()返回一个现有的密钥,这就是为什么你的插入失败..你可以执行:

db.Songs.find({listkey:"399dc507-b1fe-4e0f-a2c4-fa3dabd2bdf5"}); 

并检查是否有多个文件返回?

不是说这是你的解决scheme,但是…如果你使用SimpleSchema,并且你在字段上指定了“unique”或“index”,你可以得到这个问题。 即使您修改了SimpleSchema对象以删除约束,也需要.drop()。