createOrReplace

Creates a new document in the persistent data storage, or replaces its content if it already exists.

The optional parameter refresh can be used with the value wait_for in order to wait for the document to be indexed (indexed documents are available for search).

Signature

Copied to clipboard!
std::string createOrReplace(
    const std::string& index,
    const std::string& collection,
    const std::string& id,
    const std::string& document);

std::string createOrReplace(
    const std::string& index,
    const std::string& collection,
    const std::string& id,
    const std::string& document,
    const kuzzleio::query_options& options);

Arguments

Argument Type Description
index
const std::string&
Index name
collection
const std::string&
Collection name
id
const std::string&
Document ID
document
const std::string&
JSON string representing the body of the document
options
kuzzleio::query_options*
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
const std::string&

("")
If set to wait_for, waits for the change to be reflected for search (up to 1s)

Return

A JSON string representing an object containing the document creation result.

Property Type Description
_id
string
ID of the newly created document
_version
number
Version of the document in the persistent data storage
_source
object
JSON string representing the created document
result
string
Set to created in case of success

Exceptions

Throws a kuzzleio::KuzzleException if there is an error. See how to handle errors.

Usage

Copied to clipboard!
try {
  std::string response = kuzzle->document->createOrReplace(
    "nyc-open-data",
    "yellow-taxi",
    "some-id",
    R"({"lastName": "McHan"})");

  std::cout << response << std::endl;
  /*
  {
    "_index": "nyc-open-data",
    "_type": "yellow-taxi",
    "_id": "some-id",
    "_version": 1,
    "result": "created",
    "_shards": {
      "total": 2,
      "successful": 1,
      "failed": 0
    },
    "created": true,
    "_source": {
      "lastName": "McHan",
      "_kuzzle_info": {
        "author": "-1",
        "createdAt": 1537445737667,
        "updatedAt": null,
        "updater": null,
        "active": true,
        "deletedAt": null
      }
    }
  }
  */

  std::cout << "Document successfully created" << std::endl;
} catch (kuzzleio::KuzzleException& e) {
  std::cerr << e.what() << std::endl;
}