Existen dos tipos de actualizaciones: actualizaciones de modificación y actualizaciones
de reemplazado. Las actualizaciones de modificación contienen operandos $ y cambian los campos
de un documento: pueden incrementar contadores, agregar elementos a un array,
o modificar el tipo de dato de un campo.
Por ejemplo, una actualización de modificación puede añadir un nuevo campo a un documento.
<?php
/** supongamos un documento así:
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));
/** ahora el documento sería así:
* {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
*/
?>
Las actualizaciones de reemplazado modifican todo el documento seleccionado por otro
nuevo. Generalmente no es tan eficientes como usar operandos $, pero pueden ser muy
útiles en operaciones complejas o en actualizaciones que no se pueden expresar en términos
de operandos $.
Por ejemplo, una actualización de reemplazado puede cambiar por completo la estructura de un
documento.
<?php
/** supongamos un documento así:
* {"username" : "...", "password" : "...", "email" : "..."}
*/
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
"name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));
/** ahora el documento quedaría así:
* {
* "userId" : 12345,
* "info" : {
* "name" : "joe",
* "twitter" : "@joe4153",
* "email" : "..."
* },
* "likes" : []
* }
*/
?>