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]);
Argument | Type | Description |
---|---|---|
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
Options | Type (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);
}
Edit this page on Github(opens new window)