(mongodb >=1.0.0)
MongoDB\Driver\WriteResult::getWriteErrors — Возвращает любые ошибки записи, которые произошли
Сигнатура функции не содержит параметров.
Возвращает массив объектов MongoDB\Driver\WriteError для любых ошибок записи, обнаруженных во время операции записи. Массив будет пустым, если ошибок не произошло.
Пример #1 Пример использования MongoDB\Driver\WriteResult::getWriteErrors() с одной ошибкой
<?php
$manager = new MongoDB\Driver\Manager;
/* По умолчанию массовые операции записи выполняются последовательно по порядку
* и выполнение прекращается после первой ошибки.
*/
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);
try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}
?>
Вывод приведённого примера будет похож на:
array(1) { [0]=> object(MongoDB\Driver\WriteError)#5 (4) { ["message"]=> string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }" ["code"]=> int(11000) ["index"]=> int(2) ["info"]=> NULL } }
Пример #2 Пример использования MongoDB\Driver\WriteResult::getWriteErrors() с несколькими ошибками
<?php
$manager = new MongoDB\Driver\Manager;
/* Параметр "ordered" может использоваться для продолжения
* выполнения массовых операций записи после первой ошибки.
*/
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);
try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}
?>
Вывод приведённого примера будет похож на:
array(2) { [0]=> object(MongoDB\Driver\WriteError)#5 (4) { ["message"]=> string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }" ["code"]=> int(11000) ["index"]=> int(2) ["info"]=> NULL } [1]=> object(MongoDB\Driver\WriteError)#6 (4) { ["message"]=> string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 4 }" ["code"]=> int(11000) ["index"]=> int(5) ["info"]=> NULL } }