UPDATE
The UPDATE operation modifies the content of existing documents in a collection. With an UPDATE statement, you can update specific fields within the documents based on specified conditions:
In this syntax:
- your_collection_name is the name of the collection in which you want to update data.
- field1 = value1, field2 -> [mutator], ... represents the fields to be updated and their corresponding new value or functional mutator.
- [condition] is the expression or set of conditions that determine which documents should be included in the result set.
Here is an example of a basic UPDATE operation:
The following snippet shows an exampleUPDATE setting multiple fields:
When updating fields nested in a MAP, specify the field-value pairs you want to update.
For MAP syntax, see Ditto Query Language > Types and Definitions > Map Operations.
In DQL, you can mark a field as a tombstone. A tombstone is a flag signaling to remote peers that the field is deleted from the local Ditto store.
In Ditto, when performing an operation like an UPDATE, excluding fields from your payload does not remove the existing data from the system. In other words, Ditto ignores any fields you've omitted from your payload and therefore they remain unchanged by that particular operation.
To set a field as a tombstone, use the syntax [field] -> tombstone() as follows:
Using the tombstone() functional operation, you can mark a MAP data type as deleted.
When a MAP is tombstoned, a metadata property is internally set on the field and all the data within the MAP is removed. This is done by iterating through all the fields in the MAP and calling tombstone on those fields.
For REGISTER and ATTACHMENT data types within the MAP, flagging values with tombstone results in their deletion.
For more information and how-to instructions, see Ditto Query Language > Types and Definitions > Tombstone Operation.