PHP.mk документација

MongoDB\Driver\BulkWrite

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.mongodb-driver-bulkwrite.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека class.mongodb-driver-bulkwrite.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
MongoDB\Driver\BulkWrite

Референца за `class.mongodb-driver-bulkwrite.php` со подобрена типографија и навигација.

class.mongodb-driver-bulkwrite.php

The MongoDB\Driver\BulkWrite class

класата MongoDB\Driver\BulkWrite

Синопсис на класата

final class MongoDB\Driver\BulkWrite implements luk4z_7 at hotmail dot com {
/* Методи */
public __construct(?array $options = null)
public count(): int
public delete(array|object $filter, ?array $deleteOptions = null): void
public insert(array|object $document): mixed
public update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void
}

Примери

Операциите за запишување може да бидат нарачани (стандардно) или ненарачани. Нарачаните операции за запишување се испраќаат до серверот, по редослед како што се дадени, за сериско извршување. Ако запишувањето не успее, сите преостанати операции ќе бидат прекинати. Ненарачаните операции се испраќаат до серверот по случаен редослед каде што може да се извршуваат паралелно. Сите грешки што ќе се појават се пријавуваат откако ќе се обидат сите операции.

Пример #1 Мешани операции за запишување се групирани по тип

<?php

$bulk
= new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->insert(['_id' => 3, 'x' => 3]);
$bulk->delete(['x' => 1]);

?>

Мешаните операции за запишување (т.е. вметнувања, ажурирања и бришења) ќе бидат составени во команди за запишување по тип за да се испратат последователно до серверот.

Ќе резултира со извршување на четири команди за запишување (т.е. заобиколувања). Бидејќи операциите се нарачани, третото вметнување не може да се испрати додека не се изврши претходното ажурирање.

<?php

$bulk
= new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3, 'hello' => 'world']);
$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
$bulk->insert(['_id' => 4, 'hello' => 'pluto']);
$bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 5]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk, ['writeConcern' => $writeConcern]);
} catch (
MongoDB\Driver\Exception\BulkWriteException $e) {
$result = $e->getWriteResult();

// Check if the write concern could not be fulfilled
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}

// Check if any write operations did not complete at all
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (
MongoDB\Driver\Exception\Exception $e) {
printf("Other error: %s\n", $e->getMessage());
exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

Пример #2 Нарачани операции за запишување што предизвикуваат грешка

waiting for replication timed out (64): array (
  'wtimeout' => true,
)
Operation#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

Ако грижата за запишување не можеше да се исполни, горниот пример би прикажал нешто како:

<?php

$bulk
= new MongoDB\Driver\BulkWrite(['ordered' => false]);
/* ... */

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operation#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Inserted 5 document(s)
Updated  2 document(s)

Содржина

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.