SDK
SDK Javascript v7.x
2

upsert #

Available since Kuzzle 2.8.0
Available since 7.5.0

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

upsert(index, collection, id, changes, [options]);
ArgumentTypeDescription
index
string
Index name
collection
string
Collection name
id
string
Document ID
changes
object
Partial content of the document to update

Options #

Additional query options

OptionsType
(default)
Description
default
object

({})
Fields to add to the document if it gets created
refresh
string

("")
If set to wait_for, 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
silent
boolean

(false)
If true, then Kuzzle will not generate notifications
Available since 7.5.3
source
boolean

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

(true)
If true, queues the request during downtime, until connected to Kuzzle again
timeout
number

(-1)
Time (in ms) during which a request will still be waited to be resolved. Set it -1 if you want to wait indefinitely
triggerEvents
boolean

(false)
If set to true, will trigger events even if using Embeded SDK. You should always ensure that your events/pipes does not create an infinite loop.
Available since Kuzzle 2.31.0

Resolves #

Resolves to an object containing the document update result.

Usage #

try {
  await kuzzle.document.create(
    'nyc-open-data',
    'yellow-taxi',
    { capacity: 4 },
    'some-id'
  );
  const response = await kuzzle.document.upsert(
    'nyc-open-data',
    'yellow-taxi',
    'some-id',
    { changes: { category: 'suv' } }
  );
  console.log(response);
  /*
  {
    id: 'some-id',
    _version: 2
  }
  */
} catch (error) {
  console.error(error.message);
}