(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Добавляет операцию записи в пакет
$item
) : boolДобавляет операцию записи в пакет.
Если пакет с $item
превышает размеры
maxWriteBatchSize
или maxBsonObjectSize
,
драйвер разделит пакеты на несколько команд записи
при вызове MongoWriteBatch::execute().
item
Массив, описывающий операцию записи. Структура этого значения зависит от типа операции пакета.
Тип пакета | Ожидаемый аргумент |
---|---|
MongoWriteBatch::COMMAND_INSERT |
Документ для добавления. |
MongoWriteBatch::COMMAND_UPDATE |
Операция необработанного обновления.
Обязательными ключами являются
Необязательными ключами являются |
MongoWriteBatch::COMMAND_DELETE |
Операция необработанного удаления.
Обязательные ключи:
Параметр |
Возвращает TRUE
в случае успешного выполнения,
выдает исключение в противном случае.
Пример #1 Пример использования MongoWriteBatch::add()
Пакетная операция вставки
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");
$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
$batch->add($document);
}
$batch->execute(array("w" => 1));
?>
Пример #2 Пример использования MongoWriteBatch::add()
Пакетная операция обновления
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$item1 = array(
"q" => array("my" => "demo"),
"u" => array('$set' => array("try" => 1)),
"multi" => false, /* значение по умолчанию */
"upsert" => false, /* значение по умолчанию */
);
$item2 = array(
"q" => array("is" => "working"),
"u" => array('$set' => array("try" => 2)),
"multi" => true,
);
$item3 = array(
"q" => array("created" => "new-document"),
"u" => array('$set' => array("try" => 3)),
"upsert" => true,
);
$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));
?>
Пример #3 Пример использования MongoWriteBatch::add()
Пакетная операция удаления
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$item1 = array(
"q" => array("my" => "demo"),
"limit" => 1,
);
$item2 = array(
"q" => array("try" => 3),
"limit" => 1,
);
$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>