MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update β€” Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ обновлСния Π² ΠΏΠΎΡ€Ρ†ΠΈΡŽ

ОписаниС

public function MongoDB\Driver\BulkWrite::update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void

ДобавляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ обновлСния Π² MongoDB\Driver\BulkWrite.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

filter (array|object)
Β»Β ΠŸΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ запроса. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ совпадёт со всСми элСмСнтами ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π‘Π£Π‘Π” MongoDB ΠΏΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² запроса сравниваСт Ρ‚ΠΈΠΏΡ‹ ΠΈ значСния ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ » правилам сравнСния BSON-Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ сравнСния ΠΈ Тонглирования Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² PHP. ΠŸΡ€ΠΈ сопоставлСнии ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ BSON-Ρ‚ΠΈΠΏΠ° Π² запросС трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ BSON-класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Ρ‚ΠΈΠΏΡƒ BSON-значСния, поэтому для сопоставлСния с BSON-Ρ‚ΠΈΠΏΠΎΠΌ » ObjectId ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса MongoDB\BSON\ObjectId.

newObj (array|object)
Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, содСрТащий ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ обновлСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $set), Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ выраТСния field:value) ΠΈΠ»ΠΈ » конвСйСр Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ.
updateOptions

updateOptions
ΠžΠΏΡ†ΠΈΡ Π’ΠΈΠΏ ОписаниС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
arrayFilters array Массив Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты массива Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ обновлСния Π² ΠΏΠΎΠ»Π΅ массива. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ » УказывайтС arrayFilters для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ обновлСния массива Π² руководствС MongoDB для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠžΠΏΡ†ΠΈΡ доступна с MongoDB 3.6+ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π²ΠΎ врСмя выполнСния, Ссли ΠΎΠ½Π° ΡƒΠΊΠ°Π·Π°Π½ для Π±ΠΎΠ»Π΅Π΅ старой вСрсии сСрвСра.
collation array|object » БопоставлСниС позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ спСцифичныС для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка ΠΏΡ€Π°Π²ΠΈΠ»Π° для сравнСния строк, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° рСгистр Π±ΡƒΠΊΠ² ΠΈ надстрочныС Π·Π½Π°ΠΊΠΈ. Если Π·Π°Π΄Π°Π»ΠΈ сопоставлСниС, Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ "locale" Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ОписаниС ΠΏΠΎΠ»Π΅ΠΉ смотритС Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ » БопоставлСниС. Если сопоставлСниС Π½Π΅ Π·Π°Π΄Π°Π»ΠΈ явно, Π½ΠΎ Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ сопоставлСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ ΠΎΠ½ΠΎ. Если Π½Π΅Ρ‚ Π½ΠΈ Ρ‚ΠΎΠ³ΠΎ Π½ΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‚ΠΎ MongoDB Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простоС Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ сравнСниС строк. Π­Ρ‚Π° опция доступна Π² MongoDB 3.4+ ΠΈ, Ссли Π±ΡƒΠ΄Π΅Ρ‚ использована для Π±ΠΎΠ»Π΅Π΅ старых вСрсий, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ врСмя исполнСния.
hint string|array|object ИндСкс спСцификации. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π»ΠΈΠ±ΠΎ имя индСкса Π² Π²ΠΈΠ΄Π΅ строки, Π»ΠΈΠ±ΠΎ шаблон ΠΊΠ»ΡŽΡ‡Π° индСкса. Если ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ систСма запросов Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм индСкса подсказок. ΠžΠΏΡ†ΠΈΡ доступна с MongoDB 4.4+ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π²ΠΎ врСмя выполнСния, Ссли ΠΎΠ½Π° ΡƒΠΊΠ°Π·Π°Π½ для Π±ΠΎΠ»Π΅Π΅ старой вСрсии сСрвСра.
multi bool ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Ссли false ΠΈΠ»ΠΈ всС подходящиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈ true. Π­Ρ‚Π° опция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ true, ΠΊΠΎΠ³Π΄Π° newObj - Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. false
sort array|object Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ссли запрос соотвСтствуСт нСскольким Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ порядку сортировки. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "multi" Ρ€Π°Π²Π½ΠΎ true. ΠžΠΏΡ†ΠΈΡ доступна Π² MongoDB 8.0+ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π²ΠΎ врСмя выполнСния, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π° для Π±ΠΎΠ»Π΅Π΅ старой вСрсии сСрвСра.
upsert bool Если filter Π½Π΅ соотвСтствуСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ, Π±ΡƒΠ΄Π΅Ρ‚ вставлСн Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΈΠ· newObj, Ссли ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (Ρ‚.Π΅. ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ обновлСния); Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² newObj Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ filter для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. false

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Ѐункция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния послС выполнСния.

Ошибки

  • ΠŸΡ€ΠΈ ошибкС парсинга Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MongoDB\Driver\Exception\InvalidArgumentException.

Бписок измСнСний

ВСрсия ОписаниС
PECL mongodb 1.21.0 Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция "sort".
PECL mongodb 1.7.0 Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция "hint".
PECL mongodb 1.6.0 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ newObj Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ. ВрСбуСтся MongoDB 4.2+, для Π±ΠΎΠ»Π΅Π΅ старой вСрсии сСрвСра выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния.
PECL mongodb 1.5.0 ИспользованиС ΠΎΠΏΡ†ΠΈΠΈ "arrayFilters" ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π²ΠΎ врСмя выполнСния, Ссли ΠΎΠ½Π° Π½Π΅ поддСрТиваСтся сСрвСром. РаньшС Π½Π΅ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Π»ΠΎΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½.
PECL mongodb 1.4.0 Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция "arrayFilters".
PECL mongodb 1.2.0 Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция "collation".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования MongoDB\Driver\BulkWrite::update()

<?php

$bulk
= new MongoDB\Driver\BulkWrite;
$bulk->update(
[
'x' => 2],
[
'$set' => ['y' => 3]],
[
'multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы