MongoDB: что возвращает getLastError () - PullRequest
5 голосов
/ 20 октября 2011

Думал, что 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" );
}

1 Ответ

5 голосов
/ 20 октября 2011

Команда getLastError() делает правильные вещи. Он сообщает вам, что действие было успешным (ok:1.0) и что ошибки не произошло ("err":null).

Для получения более подробной информации ознакомьтесь с недавно обновленными документами .

getLastError() также имеет некоторые функции, связанные с журналированием и репликацией, которые вы, возможно, захотите изучить.


Edit:

В ответ на первый комментарий:

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

} catch (Exception e) {
  logger.error("ERROR" );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...