Suppose we wish to change the name of a comment's author in this document:
{ "_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"))));
?>
The positional operator $
is useful for updating objects
that are in arrays. In the example above, for instance, suppose that we did
not know the index of the comment that we needed to change, merely that we
needed to change "John" to "Jim". We can use $
to do so.
<?php
$blog->update(
array('comments.author' => 'John'),
array('$set' => array('comments.$.author' => 'Jim')));
?>