以为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/