IT. Expert System.




Updates can be one of the most complicated operation available with MongoDB. They combine a query with an action, modifying documents that match the criteria. They are also extremely powerful, allowing you to change documents quickly and replace them altogether. They are done in-place (when possible) with little overhead.

Modifying vs. replacing documents

There are two types of updates you can use: modifying updates and replacing updates. Modifying updates contain $-operators and change fields in a document: they might increment counters, push new elements onto an array, or change the type of a field.

For example, a modifying update could add a new field to a document.

/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** now the document will look like:
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}

Replacing updates replace the entire matching document with a new document. They are generally not as efficient as using $-modifiers, but can be very usefully for complex operations or updates that can't be expressed in terms of $-operators.

For example, a replacing update can completely change the structure of a document.

/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
$coll->update(array("username" => "joe"), array("userId" => 12345"info" => array(
"name" => "joe""twitter" => "@joe4153""email" => "..."), "likes" => array()));

/** now the document will look like:
 * {
 *     "userId" : 12345, 
 *     "info" : {
 *         "name" : "joe", 
 *         "twitter" : "@joe4153", 
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }

Updating Nested Objects

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."   }  ] } 
In order to change an inner field, we use $set (so that all of the other fields are not removed!) with the index of comment to change:

->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));


The Positional Operator

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.


"" => "John"), 
'$set' => array('comments.$.author' => "Jim")));



Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)





Java Script








Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 1822 / . Delta: 0.03415 с