mirror of https://gitee.com/bigwinds/arangodb
124 lines
4.2 KiB
Markdown
124 lines
4.2 KiB
Markdown
////////////////////////////////////////////////////////////////////////////////
|
|
/// @startDocuBlock REST_DOCUMENT_DELETE
|
|
/// @brief removes a document
|
|
///
|
|
/// @RESTHEADER{DELETE /_api/document/{document-handle}, Removes a document}
|
|
///
|
|
/// @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.
|
|
///
|
|
/// @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
|
|
/// 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
|
|
////////////////////////////////////////////////////////////////////////////////
|