【问题标题】:Reading error results from mongod in java after insert attempt插入尝试后从 java 中的 mongod 读取错误结果
【发布时间】:2012-05-12 16:23:37
【问题描述】:

我开始使用 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}

此外,这似乎只是报告它遇到的第一个错误,是否有办法在单个查询中同时检查电子邮件和用户名?

【问题讨论】:

    标签: java mongodb atomic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2016-12-25
      • 2014-12-15
      • 1970-01-01
      相关资源
      最近更新 更多