DittoWriteStrategy
public enum DittoWriteStrategy
Defines the various strategies available when inserting a document into a collection.
-
An existing document will be merged with the document being inserted, if there is a pre-existing document.
Declaration
Swift
case merge
-
Insert the document only if there is not already a document with the same ID in the store. If there is already a document in the store with the same ID then this will be a no-op.
Declaration
Swift
case insertIfAbsent
-
Insert the document, with its contents treated as default data, only if there is not already a document with the same ID in the store. If there is already a document in the store with the same ID then this will be a no-op. Use this strategy if you want to insert default data for a given document ID, which you want to treat as common initial data amongst all peers and that you expect to be mutated or overwritten in due course.
Declaration
Swift
case insertDefaultIfAbsent
-
The existing document will be updated based on the document being inserted. If there is a pre-existing document in the local store with the same ID, compare its value to the current value of the document. Update any differing register and attachment leaf values in the document to match the given value. Nothing is removed. This is equivalent to using an if statement to check each value in the provided payload against the local document value.
Warning
In cases of concurrent writes, non-differing values will be overridden by peers because this write strategy excludes values from the given payload that are identical to those in the local store.Declaration
Swift
case updateDifferentValues