Mongodb重复键错误.如何从错误对象中获取错误字段作为对象?

oiv*_*ind 6 mongodb node.js

当我尝试在mongo中输入一个新文档时,在另一个文档中已经存在的字段上输入一个值,当我遍历错误对象时,我得到了这个:

for(var att in err){
    console.log(att+": "+err[att]);
}
Run Code Online (Sandbox Code Playgroud)

名称:MongoError错误:E11000重复键错误索引:draw.users.$ email_1 dup key:{:"spam@online.no"}代码:11000 n:0 ok:1

所以它告诉我我想知道什么,问题是电子邮件领域.但是我可以将违规字段作为键/值而不仅仅是字符串吗?

小智 5

对错误消息使用 split 以这种方式为我返回工作

var x= err.errmsg.split("index:")[1].split("dup key")[0].split("_")[0];
Run Code Online (Sandbox Code Playgroud)


Dis*_*pol 0

如果发生碰撞,则为该查询创建 find() 将返回碰撞对象,然后您就可以从那里开始。