(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::__construct β Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ BulkWrite
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ MongoDB\Driver\BulkWrite, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠ΄Π½Π° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MongoDB\Driver\Manager::executeBulkWrite().
options (array)
| ΠΠΏΡΠΈΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
|---|---|---|---|
| bypassDocumentValidation | bool |
ΠΡΠ»ΠΈ true, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ
ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² MongoDB 3.2+ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ
Π²Π΅ΡΡΠΈΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠΎΠ²Π½Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
|
false |
| comment | mixed | ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΡΠ²ΠΎΠ΄Π° CurrentOp ΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΠΏΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² MongoDB 4.4+ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. | |
| let | array|object |
ΠΠ°ΡΡΠ° ΠΈΠΌΡΠ½ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΏΠΎΠ»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, $$var).
ΠΠΏΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² MongoDB 5.0+ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
|
|
| ordered | bool |
ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (true) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ MongoDB,
ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½Π΅ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (false) ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
|
true |
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| PECL mongodb 1.14.0 |
ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ "comment" ΠΈ "let".
|
| PECL mongodb 1.1.0 |
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ "bypassDocumentValidation".
|
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MongoDB\Driver\BulkWrite::__construct()
<?php
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
['x' => 2],
['$set' => ['x' => 1]],
['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
['_id' => 3],
['$set' => ['x' => 3]],
['limit' => 1, 'upsert' => true]
);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);
try {
$result = $manager->executeBulkWrite('db.collection', $bulk, ['writeConcern' => $writeConcern]);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
$result = $e->getWriteResult();
// ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}
// ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (MongoDB\Driver\Exception\Exception $e) {
printf("ΠΡΡΠ³Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°: %s\n", $e->getMessage());
exit;
}
printf("ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ %d Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²)\n", $result->getInsertedCount());
printf("ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ %d Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²)\n", $result->getModifiedCount());
printf("Π‘Π»ΠΈΡΠΎ %d Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²)\n", $result->getUpsertedCount());
printf("Π£Π΄Π°Π»Π΅Π½ΠΎ %d Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²)\n", $result->getDeletedCount());
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 2 Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²) ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 1 Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²) Π‘Π»ΠΈΡΠΎ 1 Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²) Π£Π΄Π°Π»Π΅Π½ΠΎ 1 Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ(ΠΎΠ²)