Вы можете использовать два типа обновлений: изменение обновлений и замена обновлений.
Изменяющие обновления содержат $-операторы и поля изменений в документе:
они могут увеличивать счетчики, помещать новые элементы в массив или изменять тип поля.
<?php
/** предположим, документы выглядят так:
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));
/** Теперь документ будет выглядеть так:
* {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
*/
?>
Замена обновлений заменяет весь соответствующий документ новым документом.
Как правило, они не так эффективны, как использование $-модификаторов,
но могут быть очень полезны для сложных операций или обновлений,
которые нельзя выразить в терминах $-операторов.
Например, заменяющее обновление может полностью изменить структуру документа.
<?php
/** предположим, документы выглядят так:
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
"name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));
/** теперь документ будет выглядеть так:
* {
* "userId" : 12345,
* "info" : {
* "name" : "joe",
* "twitter" : "@joe4153",
* "email" : "..."
* },
* "likes" : []
* }
*/
?>