Javascript 7.x

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.


Copied to clipboard!
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

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

Copied to clipboard!
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);
}