(No version information available, might only be in Git)
Collection::modify β ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
$search_condition): mysql_xdevapi\CollectionModifyΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ°.
search_condition
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ SQL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π΄Π»Ρ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΠΏΡΠΎΡΡΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ true, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΈΠ»ΠΈ
ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ
'CAST(_id AS SIGNED) >= 10',
'age MOD 2 = 0 OR age MOD 3 = 0' ΠΈΠ»ΠΈ
'_id IN ["2","5","7","10"]'.
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Modify, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ MODIFY.
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ MODIFY Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ mysql_xdevapi\Collection::modify()
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");
$collection->add('{"name": "ΠΠ»ΡΡΡΠ΅Π΄", "age": 18, "job": "ΠΠ²ΠΎΡΠ΅ΡΠΊΠΈΠΉ"}')->execute();
$collection->add('{"name": "ΠΠΎΠ±", "age": 19, "job": "Π₯ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ"}')->execute();
// ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ
ΡΠ°Π±ΠΎΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Ρ
ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠ²: Π°ΡΡΠΈΡΡ ΠΈ ΠΌΠ°ΡΡΠ΅Ρ
$collection
->modify("job in ('ΠΠ²ΠΎΡΠ΅ΡΠΊΠΈΠΉ', 'Π₯ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ')")
->arrayAppend('job', 'ΠΡΡΠΈΡΡ')
->arrayAppend('job', 'ΠΠ°ΡΡΠ΅Ρ')
->execute();
// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ 'beer' ΠΈΠ· Π²ΡΠ΅Ρ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ 21
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>