我正在为我的 asp.net 应用程序开发一个支持 MongoDB 的身份验证模块。MongoDB 数据库有一组用户,我在其中存储登录信息 - 用户名、电子邮件和密码。用户名和电子邮件都设置为唯一:
users.ensureIndex({email:1}, {unique:1})
users.ensureIndex({uname:1}, {unique:1})
现在,如果我尝试使用现有的 uname 或电子邮件插入记录,我会收到 MongoDB 异常:
Safemode detected an error: E11000 duplicate key error index:
authdb.users.$email_1 dup key: { : "test@test.com" }
(response: { "err" : "E11000 duplicate key error index: authdb.users.$email_1
dup key: { : \"test@test.com\" }", "code" : 11000, "n" : 0, "connectionId" : 9,
"ok" : 1.0 })
我需要告诉用户他们输入的用户名或电子邮件已经存在,但整个异常只是一个文本块,要查看发生了什么,我必须通过查看“$email”或“$uname”来猜测在错误消息文本中。是否有某种针对 MongoDB 异常的解析器可以帮助我检测异常的用途?