Php/docs/mongodb-driver-writeresult.getwriteerrors

提供:Dev Guides
< Php
移動先:案内検索

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrorsReturns any write errors that occurred


説明

final public MongoDB\Driver\WriteResult::getWriteErrors ( ) : array

パラメータ

この関数にはパラメータはありません。


返り値

Returns an array of MongoDB\Driver\WriteError objects for any write errors encountered during the write operation. The array will be empty if no write errors occurred.


エラー / 例外


例1 MongoDB\Driver\WriteResult::getWriteErrors() with a single error

<?php$manager = new MongoDB\Driver\Manager;/* By default, bulk write operations are executed serially in order and * execution will stop after the first error. */$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() with multiple errors

<?php$manager = new MongoDB\Driver\Manager;/* The "ordered" option may be used to allow bulk write operations to continue * executing after the first error is encountered. */$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
  }
}