Il existe 2 types de mises à jour: modification ou remplacement. Les modifications
contiennent des opérateurs $ et changent des champs d'un document: elles peuvent
incrémenter des compteurs, ajouter des éléments dans des tableaux ou encore changer
le type d'un champ.
Par exemple, une mise à jour en modification ajoute un nouveau champ au document.
<?php
/** imaginons un document de cette structure :
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));
/** maintenant, le document ressemblera à :
* {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
*/
?>
Les mises à jour de remplacement remplacent le document entier par un autre.
Elles ne sont pas aussi efficaces que les modifications, mais elles peuvent avoir
un intérêt dans le cas où les opérateurs à $ ne peuvent être utilisés.
Par exemple, une mise à jour de remplacement peut complètement changer la structure
d'un document.
<?php
/** imaginons un document de cette structure:
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
"name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));
/** maintenant, le document ressemblera à :
* {
* "userId" : 12345,
* "info" : {
* "name" : "joe",
* "twitter" : "@joe4153",
* "email" : "..."
* },
* "likes" : []
* }
*/
?>