Supongamos que queremos cambiar el nombre del autor de un comentario en este documento:
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "content" : "this is a blog post.", "comments" : [ { "author" : "Mike", "comment" : "I think that blah blah blah...", }, { "author" : "John", "comment" : "I disagree." } ] }
<?php
$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));
?>
El operador posicional $ es útil a la hora de actualizar objetos de arrays. En el ejemplo anterior, por ejemplo, podríamos no conocer el índice del comentario que necesitamos modificar; sólo sabemos que queremos cambiar "John" a "Jim". Podemos usar $ para lograrlo.
<?php
$blog->update(
array("comments.author" => "John"),
array('$set' => array('comments.$.author' => "Jim")));
?>