当尝试在mongo中输入一个新文档时,如果我在另一个文档中已经存在一个字段,那么当我遍历错误对象时,我会得到这个:
for(var att in err){
console.log(att+": "+err[att]);
}
名称:MongoError错误:E11000重复键错误索引:draw.users . $ email_1 dup key:{:“spam@online.no”}代码:11000 n:0 ok:1
所以它告诉我我想知道什么,问题是电子邮件领域 . 但是我可以将违规字段作为键/值而不仅仅是字符串吗?
4 回答
错误消息未提供您要查找的信息:
但它足以让你找回它 .
您需要获取导致问题的索引:“email_1”(使用正则表达式)
然后你需要向db询问这个索引:
使用拆分错误消息以这种方式为我返回工作
我使用正则表达式 . 像这样
这完全是hacky,但对我有用 .
如果它发生碰撞,那么为该查询创建一个find()将返回碰撞对象并从那里开始 .