(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommandResult::getInsertResults — Возвращает подробную информацию о результатах успешных операций вставки
Значения полей _id модуль генерирует автоматически, если конкретный идентификатор не указали.
Поэтому значение insertedId в каждом результате
соответствует тому же идентификатору, который возвращается методом MongoDB\Driver\BulkWriteCommand::insertOne()
после добавления конкретной операции вставки.
Сигнатура функции не содержит параметров.
Метод возвращает документ, который содержит результаты каждой успешной операции
вставки, или null, если подробные результаты не запрашивались. Ключи
документа соответствуют индексу операции записи
из объекта MongoDB\Driver\BulkWriteCommand.
Пример #1 Пример получения подробных результатов об операциях вставки методом MongoDB\Driver\BulkWriteCommandResult::getInsertResults()
<?php
$manager = new MongoDB\Driver\Manager();
$bulk = new MongoDB\Driver\BulkWriteCommand(['verboseResults' => true]);
$generatedId = $bulk->insertOne('db.coll', ['x' => 1]);
$bulk->updateOne('db.coll', ['x' => 1], ['$set' => ['y' => 3]]);
$bulk->updateOne('db.coll', ['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->updateOne('db.coll', ['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->deleteMany('db.coll', []);
$result = $manager->executeBulkWriteCommand($bulk);
var_dump($generatedId);
var_dump($result->getInsertResults()->toPHP());Вывод приведённого примера будет похож на:
object(MongoDB\BSON\ObjectId)#3 (1) {
["oid"]=>
string(24) "67f7ee69783dcce702097b41"
}
object(stdClass)#8 (1) {
["0"]=>
object(stdClass)#7 (1) {
["insertedId"]=>
object(MongoDB\BSON\ObjectId)#6 (1) {
["oid"]=>
string(24) "67f7ee69783dcce702097b41"
}
}
}