(mongodb >=2.1.0)
MongoDB\Driver\Exception\BulkWriteCommandException::getErrorReply — Возвращает ошибку высокоуровневой команды
Сигнатура функции не содержит параметров.
Метод возвращает высокоуровневую ошибку, которая возникла при попытке связаться
с сервером или выполнить массовую запись. Метод возвращает значение null,
если исключение возникло из-за ошибок отдельных записей.
Пример #1 Пример получения ошибки методом MongoDB\Driver\Exception\BulkWriteCommandException::getErrorReply()
<?php
$manager = new MongoDB\Driver\Manager();
// Пример вызывает ошибку на стороне сервера командой configureFailPoint, чтобы сымитировать ошибку команды высокого уровня
$manager->executeCommand('admin', new MongoDB\Driver\Command([
'configureFailPoint' => 'failCommand',
'mode' => ['times' => 1],
'data' => [
'failCommands' => ['bulkWrite'],
'errorCode' => 8, /* UnknownError */
],
]));
$bulk = new MongoDB\Driver\BulkWriteCommand();
$bulk->insertOne('db.coll', ['x' => 1]);
try {
$result = $manager->executeBulkWriteCommand($bulk);
} catch (MongoDB\Driver\Exception\BulkWriteCommandException $e) {
var_dump($e->getErrorReply()?->toPHP());
}
?>Вывод приведённого примера будет похож на:
object(stdClass)#12 (6) {
["ok"]=>
float(0)
["errmsg"]=>
string(43) "Failing command via 'failCommand' failpoint"
["code"]=>
int(8)
["codeName"]=>
string(12) "UnknownError"
["$clusterTime"]=>
object(stdClass)#10 (2) {
["clusterTime"]=>
object(MongoDB\BSON\Timestamp)#6 (2) {
["increment"]=>
string(1) "7"
["timestamp"]=>
string(10) "1744319389"
}
["signature"]=>
object(stdClass)#9 (2) {
["hash"]=>
object(MongoDB\BSON\Binary)#7 (2) {
["data"]=>
string(20) ""
["type"]=>
int(0)
}
["keyId"]=>
object(MongoDB\BSON\Int64)#8 (1) {
["integer"]=>
string(1) "0"
}
}
}
["operationTime"]=>
object(MongoDB\BSON\Timestamp)#11 (2) {
["increment"]=>
string(1) "7"
["timestamp"]=>
string(10) "1744319389"
}
}