2011-10-20 124 views
5

認爲WriteResult.getLastError()應返回null,如果刪除
操作成功。MongoDB:什麼是getLastError()返回

它返回

{ "n" : 1 , "connectionId" : 200 , "wtime" : 0 , "err" : null , "ok" : 1.0} 

BatchDataDocument被成功刪除,但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"); 
} 

回答

5

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"); 
} 
+0

,使課程的意義。我該如何重建我的代碼來捕獲(「err」:null) – Erik

+0

我沒有看到任何關於getLastError在該鏈接中返回的信息的文檔。 – UpTheCreek

+1

這篇文章被解答近2年前。所以「新」是相對的,從那以後,文檔已經完全被重新取消。轉到新文檔並在搜索欄中輸入'getLastError'提供了以下鏈接:http://docs.mongodb.org/manual/reference/command/getLastError/ –

相關問題