更新
仍有问题,我尝试在mongo shell中完成所有这些操作,错误看起来更奇怪:
db.coupons.createIndex({ event: 1, code: 1 }, { unique: true, name: 'event_1_code_1_2', collation: { locale: 'en', strength: 2 } })
{
"ok" : 0,
"errmsg" : "E11000 duplicate key error index: heroku_xxxxxx.coupons.$event_1_code_1_2 dup key:
{ : ObjectId('5944128753af0c001feaaca6'), : \"-)COU)9O\u0001\f\" }",
"code" : 11000,
"codeName" : "DuplicateKey"
}
我保证,我已经使用.find()
并手动搜索任何与此非常相似的文档。我发现什么都没有。这个文档不存在,或者mongodb有一个我不知道的奇怪的隐藏文档功能。
我收到错误,我明白这意味着什么,但我找不到任何会导致错误的文件。
我正在使用heroku / mongoose / mlab并尝试创建不区分大小写的唯一索引:
CouponSchema.index({ event: 1, code: 1 }, { name: 'event_1_code_1_2', unique: true, collation: { locale: 'en', strength: 2 } });
未处理拒绝MongoError:E11000重复键错误索引: heroku_XXXXXX.coupons。$ event_1_code_1_2 dup key:{: ObjectId('59dfbf630dda30002665129b'),:“/ 9S9AES1”}
这不适用于生产(使用现有数据)。看看我会想到的错误:还有另一个代码为“/ 9S9AES1”的文档,其中包含不同的字符。但我搜索任何带有代码“/ 9S9AES1”的文档,我发现没什么。
我甚至搜索过:
"code": {
"$regex": ".*9S9.*",
"$options": "i"
}
找不到文件。
我也有一个类似的索引没有整理工作。有没有人有想法?
答案 0 :(得分:0)
从架构中删除“唯一”属性,或者不要使用同一选项卡来注册多个帐户,除非您从当前选项卡中注销其中一个。删除唯一属性后,请从数据库中删除所有数据并再次注册。希望对您有所帮助。是我的