1
0
Fork 0
arangodb/Documentation/DocuBlocks/Rest/Collections/get_api_collection_checksum.md

3.1 KiB

@startDocuBlock get_api_collection_checksum @brief returns a checksum for the specified collection

@RESTHEADER{GET /_api/collection/{collection-name}/checksum, Return checksum for the collection, handleCommandGet:collectionChecksum}

@HINTS {% hint 'warning' %} Accessing collections by their numeric ID is deprecated from version 3.4.0 on. You should reference them via their names instead. {% endhint %}

@RESTURLPARAMETERS

@RESTURLPARAM{collection-name,string,required} The name of the collection.

@RESTQUERYPARAMETERS

@RESTQUERYPARAM{withRevisions,boolean,optional} Whether or not to include document revision ids in the checksum calculation.

@RESTQUERYPARAM{withData,boolean,optional} Whether or not to include document body data in the checksum calculation.

@RESTDESCRIPTION Will calculate a checksum of the meta-data (keys and optionally revision ids) and optionally the document data in the collection.

The checksum can be used to compare if two collections on different ArangoDB instances contain the same contents. The current revision of the collection is returned too so one can make sure the checksums are calculated for the same state of data.

By default, the checksum will only be calculated on the _key system attribute of the documents contained in the collection. For edge collections, the system attributes _from and _to will also be included in the calculation.

By setting the optional query parameter withRevisions to true, then revision ids (_rev system attributes) are included in the checksumming.

By providing the optional query parameter withData with a value of true, the user-defined document attributes will be included in the calculation too. Note: Including user-defined attributes will make the checksumming slower.

The response is a JSON object with the following attributes:

  • checksum: The calculated checksum as a number.

  • revision: The collection revision id as a string.

Note: this method is not available in a cluster.

@RESTRETURNCODES

@RESTRETURNCODE{400} If the collection-name is missing, then a HTTP 400 is returned.

@RESTRETURNCODE{404} If the collection-name is unknown, then a HTTP 404 is returned.

@EXAMPLES

Retrieving the checksum of a collection:

@EXAMPLE_ARANGOSH_RUN{RestCollectionGetCollectionChecksum} var cn = "products"; db._drop(cn); var coll = db._create(cn); coll.save({ foo: "bar" }); var url = "/_api/collection/" + coll.name() + "/checksum";

var response = logCurlRequest('GET', url);

assert(response.code === 200);

logJsonResponse(response);
db._drop(cn);

@END_EXAMPLE_ARANGOSH_RUN

Retrieving the checksum of a collection including the collection data, but not the revisions:

@EXAMPLE_ARANGOSH_RUN{RestCollectionGetCollectionChecksumNoRev} var cn = "products"; db._drop(cn); var coll = db._create(cn); coll.save({ foo: "bar" }); var url = "/_api/collection/" + coll.name() + "/checksum?withRevisions=false&withData=true";

var response = logCurlRequest('GET', url);

assert(response.code === 200);

logJsonResponse(response);
db._drop(cn);

@END_EXAMPLE_ARANGOSH_RUN @endDocuBlock