mirror of https://gitee.com/bigwinds/arangodb
60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
|
|
|
|
@brief partially updates documents matching an example
|
|
`collection.updateByExample(example, newValue)`
|
|
|
|
Partially updates all documents matching an example with a new document body.
|
|
Specific attributes in the document body of each document matching the
|
|
*example* will be updated with the values from *newValue*.
|
|
The document meta-attributes such as *_id*, *_key*, *_from*,
|
|
*_to* cannot be updated.
|
|
|
|
Partial update could also be used to append new fields,
|
|
if there were no old field with same name.
|
|
|
|
`collection.updateByExample(document, newValue, keepNull, waitForSync)`
|
|
|
|
The optional *keepNull* parameter can be used to modify the behavior when
|
|
handling *null* values. Normally, *null* values are stored in the
|
|
database. By setting the *keepNull* parameter to *false*, this behavior
|
|
can be changed so that all attributes in *data* with *null* values will
|
|
be removed from the target document.
|
|
|
|
The optional *waitForSync* parameter can be used to force synchronization
|
|
of the document replacement operation to disk even in case that the
|
|
*waitForSync* flag had been disabled for the entire collection. Thus,
|
|
the *waitForSync* parameter can be used to force synchronization of just
|
|
specific operations. To use this, set the *waitForSync* parameter to
|
|
*true*. If the *waitForSync* parameter is not specified or set to
|
|
*false*, then the collection's default *waitForSync* behavior is
|
|
applied. The *waitForSync* parameter cannot be used to disable
|
|
synchronization for collections that have a default *waitForSync* value
|
|
of *true*.
|
|
|
|
`collection.updateByExample(document, newValue, keepNull, waitForSync, limit)`
|
|
|
|
The optional *limit* parameter can be used to restrict the number of
|
|
updates to the specified value. If *limit* is specified but less than
|
|
the number of documents in the collection, it is undefined which documents are
|
|
updated.
|
|
|
|
`collection.updateByExample(document, newValue, options)`
|
|
|
|
Using this variant, the options for the operation can be passed using
|
|
an object with the following sub-attributes:
|
|
- *keepNull*
|
|
- *waitForSync*
|
|
- *limit*
|
|
- *mergeObjects*
|
|
|
|
@EXAMPLES
|
|
|
|
@EXAMPLE_ARANGOSH_OUTPUT{012_documentsCollectionUpdateByExample}
|
|
~ db._create("example");
|
|
db.example.save({ Hello : "world", foo : "bar" });
|
|
db.example.updateByExample({ Hello: "world" }, { Hello: "foo", World: "bar" }, false);
|
|
db.example.byExample({ Hello: "foo" }).toArray()
|
|
~ db._drop("example");
|
|
@END_EXAMPLE_ARANGOSH_OUTPUT
|
|
|