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