SDK
SDK Dart Null Safety v3.x
2

upsert #

Available since Kuzzle 2.8.0
Available since 2.2.0

Applies partial changes to a document. If the document doesn't already exist, a new document is created.

  Future<Map<String, dynamic>> upsert(
    String index,
    String collection,
    String id,
    Map<String, dynamic> changes, {
      Map<String, dynamic> defaults = const {},
      bool waitForRefresh = false,
      int? retryOnConflict,
      bool? source,
  })
ArgumentTypeDescription
index
String
Index name
collection
String
Collection name
id
String
Document ID
changes
Map<String, dynamic>
Partial content of the document to update

Options #

Additional query options

OptionsType
(default)
Description
defaults
Map<String, dynamic>

({})
(optional) fields to add to the document if it gets created
waitForRefresh
bool

("")
If set to true, waits for the change to be reflected for search (up to 1s)
retryOnConflict
int?

(10)
The number of times the database layer should retry in case of version conflict
source
bool?

(false)
If true, returns the updated document inside the response

Returns #

A Map<String, dynamic> with the following properties:

PropertyTypeDescription
_source
Map<String, dynamic>
Updated document (if source option set to true)
_id
String
ID of the udated document
_version
int
Version of the document in the persistent data storage
created
bool
If true, a new document was created, otherwise the document existed and was updated

Usage #

final result = await kuzzle
  .document
  .upsert('nyc-open-data', 'yellow-taxi', 'some-id', {
      'changes': { 'category': 'suv' },
    },
  );