mUpdate #
Updates multiple documents.
Conflicts may occur if the same document gets updated multiple times within a short timespan in a database cluster.
You can set the retryOnConflict optional argument (with a retry count), to tell Kuzzle to retry the failing updates the specified amount of times before rejecting the request with an error.
mUpdate(index, collection, documents, [options]);| Argument | Type | Description |
|---|---|---|
index | string | Index name |
collection | string | Collection name |
documents | object[] | Array of documents to update |
options | object | Query options |
Options #
Additional query options
| Options | Type (default) | Description |
|---|---|---|
queuable | boolean ( true) | If true, queues the request during downtime, until connected to Kuzzle again |
refresh | string ( "") | If set to wait_for, waits for the change to be reflected for search (up to 1s) |
retryOnConflict | int ( 0) | 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 |
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 #
Returns an object containing 2 arrays: successes and errors
Each updated document is an object of the successes array with the following properties:
| Name | Type | Description |
|---|---|---|
_id | string | Document ID |
_version | number | Version of the document in the persistent data storage |
_source | object | Document content |
Each errored document is an object of the errors array with the following properties:
| Name | Type | Description |
|---|---|---|
document | object | Document that cause the error |
status | number | HTTP error status |
reason | string | Human readable reason |
Usage #
const doc1 = { capacity: 4 };
const doc2 = { capacity: 7 };
try {
await kuzzle.document.create('nyc-open-data', 'yellow-taxi', doc1, 'some-id');
await kuzzle.document.create('nyc-open-data', 'yellow-taxi', doc2, 'some-other-id');
const documents = [
{
_id: 'some-id',
body: { category: 'sedan' }
},
{
_id: 'some-other-id',
body: { category: 'limousine' }
}
];
const response = await kuzzle.document.mUpdate(
'nyc-open-data',
'yellow-taxi',
documents
);
console.log(response);
/*
{ successes:
[ { _id: 'some-id',
_source: { _kuzzle_info: [Object], category: 'sedan' },
_version: 2,
result: 'updated',
created: false,
status: 200 },
{ _id: 'some-other-id',
_source: { _kuzzle_info: [Object], category: 'limousine' },
_version: 2,
result: 'updated',
created: false,
status: 200 } ],
errors: [] }
*/
console.log('Success');
} catch (error) {
console.error(error.message);
}