MUpdate #
Updates multiple documents.
Returns a partial error (error code 206) if one or more documents can not be updated.
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.
Arguments #
MUpdate( index string, collection string, documents json.RawMessage, options types.QueryOptions) (json.RawMessage, error)| Argument | Type | Description |
|---|---|---|
index | string | Index name |
collection | string | Collection name |
documents | json.RawMessage | Document contents to update |
options | types.QueryOptions | A struct containing query options |
options #
Additional query options
| Option | Type (default) | Description |
|---|---|---|
Queuable | bool ( 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) | Number of times the database layer should retry in case of version conflict |
Return #
Returns a json.RawMessage containing two 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 | int | Version of the document in the persistent data storage |
_source | json.RawMessage | Document content |
Each errored document is an object of the errors array with the following properties:
| Name | Type | Description |
|---|---|---|
document | json.RawMessage | Document that caused the error |
status | int | HTTP error status |
reason | string | Human readable reason |
Usage #
kuzzle.Document.Create( "nyc-open-data", "yellow-taxi", "some-id", json.RawMessage(`{"capacity": 4}`), nil); kuzzle.Document.Create( "nyc-open-data", "yellow-taxi", "some-other-id", json.RawMessage(`{"capacity": 7}`), nil); response, err := kuzzle.Document.MReplace( "nyc-open-data", "yellow-taxi", json.RawMessage(`[ { "_id": "some-id", "body": { "category": "sedan" } }, { "_id": "some-other-id", "body": { "category": "limousine" } } ]`), nil) if err != nil { log.Fatal(err) } else { fmt.Println(string(response)) fmt.Println("Success") }