1
0
Fork 0
arangodb/Documentation/DocuBlocks/Rest/Documents/delete_remove_document.md

127 lines
3.8 KiB
Markdown

@startDocuBlock delete_remove_document
@brief removes a document
@RESTHEADER{DELETE /_api/document/{document-handle}, Removes a document, removeDocument}
@RESTURLPARAMETERS
@RESTURLPARAM{document-handle,string,required}
Removes the document identified by *document-handle*.
@RESTQUERYPARAMETERS
@RESTQUERYPARAM{waitForSync,boolean,optional}
Wait until deletion operation has been synced to disk.
@RESTQUERYPARAM{returnOld,boolean,optional}
Return additionally the complete previous revision of the changed
document under the attribute *old* in the result.
@RESTQUERYPARAM{silent,boolean,optional}
If set to *true*, an empty object will be returned as response. No meta-data
will be returned for the removed document. This option can be used to
save some network traffic.
@RESTHEADERPARAMETERS
@RESTHEADERPARAM{If-Match,string,optional}
You can conditionally remove a document based on a target revision id by
using the *if-match* HTTP header.
@RESTDESCRIPTION
If *silent* is not set to *true*, the body of the response contains a JSON
object with the information about the handle and the revision. The attribute
*_id* contains the known *document-handle* of the removed document, *_key*
contains the key which uniquely identifies a document in a given collection,
and the attribute *_rev* contains the document revision.
If the *waitForSync* parameter is not specified or set to *false*,
then the collection's default *waitForSync* behavior is applied.
The *waitForSync* query parameter cannot be used to disable
synchronization for collections that have a default *waitForSync*
value of *true*.
If the query parameter *returnOld* is *true*, then
the complete previous revision of the document
is returned under the *old* attribute in the result.
@RESTRETURNCODES
@RESTRETURNCODE{200}
is returned if the document was removed successfully and
*waitForSync* was *true*.
@RESTRETURNCODE{202}
is returned if the document was removed successfully and
*waitForSync* was *false*.
@RESTRETURNCODE{404}
is returned if the collection or the document was not found.
The response body contains an error document in this case.
@RESTRETURNCODE{412}
is returned if a "If-Match" header or *rev* is given and the found
document has a different version. The response will also contain the found
document's current revision in the *_rev* attribute. Additionally, the
attributes *_id* and *_key* will be returned.
@EXAMPLES
Using document handle:
@EXAMPLE_ARANGOSH_RUN{RestDocumentHandlerDeleteDocument}
var cn = "products";
db._drop(cn);
db._create(cn, { waitForSync: true });
var document = db.products.save({"hello":"world"});
var url = "/_api/document/" + document._id;
var response = logCurlRequest('DELETE', url);
assert(response.code === 200);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Unknown document handle:
@EXAMPLE_ARANGOSH_RUN{RestDocumentHandlerDeleteDocumentUnknownHandle}
var cn = "products";
db._drop(cn);
db._create(cn, { waitForSync: true });
var document = db.products.save({"hello":"world"});
db.products.remove(document._id);
var url = "/_api/document/" + document._id;
var response = logCurlRequest('DELETE', url);
assert(response.code === 404);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Revision conflict:
@EXAMPLE_ARANGOSH_RUN{RestDocumentHandlerDeleteDocumentIfMatchOther}
var cn = "products";
db._drop(cn);
db._create(cn);
var document = db.products.save({"hello":"world"});
var document2 = db.products.save({"hello2":"world"});
var url = "/_api/document/" + document._id;
var headers = {"If-Match": "\"" + document2._rev + "\""};
var response = logCurlRequest('DELETE', url, "", headers);
assert(response.code === 412);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
@endDocuBlock