以为WriteResult.getLastError()应该返回null,如果删除
操作成功。

它返回这个

{ "n" : 1 , "connectionId" : 200 , "wtime" : 0 , "err" :  null  , "ok" : 1.0}
BatchData Document已成功删除,但getLastError()不是null

在以下代码段中,我应该如何编写代码以了解是否删除失败:

try {
  Query<BatchData> queryDeleteBatchData = mongo.createQuery(BatchData.class);
  queryDeleteBatchData.field("uuid").equal(theBatch.uuid);
  queryDeleteBatchData.field("senderUuid").equal(on.uuid);

  WriteResult del = mongo.delete(queryDeleteBatchData);

  if(del.getLastError() != null){
     logger.error("ERROR");
  }

} catch (Exception e) {
  logger.error("ERROR" );
}

最佳答案

getLastError()命令正在执行正确的操作。它告诉您操作已成功(ok:1.0)并且没有发生错误("err":null)。

有关更多详细信息,请查看recently updated docs
getLastError()还具有一些与日记和复制相关的功能,您可能需要调查这些功能。

编辑:

针对第一个评论:

...
  if(del.getLastError().ok != 1.0){
     logger.error("ERROR");
  }

} catch (Exception e) {
  logger.error("ERROR" );
}

关于java - MongoDB:getLastError()返回什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7839898/

10-10 14:23