插入尝试后读取java中mongodb的错误结果

时间:2012-05-12 16:23:38

标签: java mongodb atomic

我开始使用mongodb,我想尝试插入一个usernamepasswordemail的用户。我在usernameemail上构建了唯一索引,因此如果指定的用户名或电子邮件已存在,插入将失败。

所以现在我想向用户报告他们的电子邮件已经注册,或者选择了用户名。所以我已经达到了:

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}

此外,它似乎只是报告它遇到的第一个错误,无论如何在单个查询中检查电子邮件和用户名?

1 个答案:

答案 0 :(得分:1)

如果要对两者进行检查,则必须自行发出查询以进行检查。如果您只是插入文档,那么它将仅报告第一次违反唯一索引。代码E11000应该只表示重复的键错误,这应该可以很容易地发现它发生。您需要解析错误消息以找出集合。

相关问题