Обновление MongoDB: как проверить, удалось или не удалось выполнить обновление?

Я работаю с MongoDB на PHP, используя драйвер pecl. Мои обновления работают отлично, но я хотел бы создать некоторую проверку ошибок в моих функциях.

Я пробовал использовать lastError () в довольно простой функции:

function system_db_update_object($query, $values, $database, $collection) { $connection = new Mongo(); $collection = $connection->$database->$collection; $connection->$database->resetError(); //Added for debugging $collection->update( $query, array('$set' => $values)); //$errorArray = $connection->$database->lastError(); var_dump($connection->$database->lastError());exit; // Var dump and /Exit/ } 

Но почти независимо от того, что я пытаюсь обновить (независимо от того, существует он или нет), я получаю следующие основные результаты:

 array(4) { ["err"]=> NULL ["updatedExisting"]=> bool(true) ["n"]=> float(1) ["ok"]=> float(1) } 

Как узнать, прошло или не удалось выполнить обновление?

Solutions Collecting From Web of "Обновление MongoDB: как проверить, удалось или не удалось выполнить обновление?"

поле «n» – это количество документов, которые были обновлены, а «updatedExisting» указывает, был ли вообще обновлен какой-либо документ. вы должны проверить эти поля, чтобы убедиться, что обновление выполнено или нет.

Откуда вы знаете, на какие строки влияет обновление MongoDB?

Как и во всех операциях записи, команда getLastError в MongoDB может подтвердить результат операции записи обновления, описанной здесь:

http://docs.mongodb.org/manual/applications/update/

Команда getLastError возвращает статус ошибки последней операции в текущем соединении. По умолчанию MongoDB не дает ответа, чтобы подтвердить успех или неудачу операции записи, клиенты обычно используют getLastError в сочетании с операциями записи, чтобы гарантировать, что запись выполнена успешно.

http://docs.mongodb.org/manual/reference/command/getLastError/#getLastError