SDK
SDK Golang v3.x
2

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)

ArgumentTypeDescription
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

OptionType
(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:

NameTypeDescription
_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:

NameTypeDescription
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")
}