使用mongodb进行流星收集中的重复键

时间:2012-07-26 20:16:04

标签: javascript node.js mongodb uuid meteor

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

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

以这种方式调用insert方法:

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

有人能帮助我吗?

提前致谢,

Topicus

2 个答案:

答案 0 :(得分:2)

哪个密钥重复? ObjectId(_id)字段不能重复。它是listkey字段吗?可能你在listkey字段上有一个唯一的索引集,并且你的Session.get()以某种方式返回一个现有的密钥,这就是你的插入失败的原因。你可以执行:

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

并检查是否有多份文件退回?

答案 1 :(得分:0)

不是说这是您的解决方案,但是......如果您使用的是SimpleSchema,并且您已经指定了' unique'或者'索引'在球场上。即使您已修改SimpleSchema对象以删除约束,您也需要.drop()。