我开始使用mongodb,我想尝试插入一个username
,password
和email
的用户。我在username
和email
上构建了唯一索引,因此如果指定的用户名或电子邮件已存在,插入将失败。
所以现在我想向用户报告他们的电子邮件已经注册,或者选择了用户名。所以我已经达到了:
CommandResult result = db.getLastError();
但是,除了解析它给我的单个错误消息之外,我没有看到一种简单的方法来读取错误。
{ "serverUsed" : "127.0.0.1:27017" ,
"err" : "E11000 duplicate key error index: mojulo.users.$username_1 dup key: { : \"blahblah\" }" ,
"code" : 11000 ,
"n" : 0 ,
"connectionId" : 12 ,
"ok" : 1.0}
此外,它似乎只是报告它遇到的第一个错误,无论如何在单个查询中检查电子邮件和用户名?
答案 0 :(得分:1)
如果要对两者进行检查,则必须自行发出查询以进行检查。如果您只是插入文档,那么它将仅报告第一次违反唯一索引。代码E11000
应该只表示重复的键错误,这应该可以很容易地发现它发生。您需要解析错误消息以找出集合。