2011-10-20 10 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/ –

関連する問題