mirror of https://gitee.com/bigwinds/arangodb
111 lines
3.0 KiB
Markdown
111 lines
3.0 KiB
Markdown
<!-- don't edit here, its from https://@github.com/arangodb/arangodbjs.git / docs/Drivers/ -->
|
|
# DocumentCollection API
|
|
|
|
The _DocumentCollection API_ extends the
|
|
[_Collection API_](README.md) with the following methods.
|
|
|
|
## documentCollection.document
|
|
|
|
`async documentCollection.document(documentHandle): Object`
|
|
|
|
Retrieves the document with the given _documentHandle_ from the collection.
|
|
|
|
**Arguments**
|
|
|
|
* **documentHandle**: `string`
|
|
|
|
The handle of the document to retrieve. This can be either the `_id` or the
|
|
`_key` of a document in the collection, or a document (i.e. an object with an
|
|
`_id` or `_key` property).
|
|
|
|
**Examples**
|
|
|
|
```js
|
|
const db = new Database();
|
|
const collection = db.collection('my-docs');
|
|
|
|
try {
|
|
const doc = await collection.document('some-key');
|
|
// the document exists
|
|
assert.equal(doc._key, 'some-key');
|
|
assert.equal(doc._id, 'my-docs/some-key');
|
|
} catch (err) {
|
|
// something went wrong or
|
|
// the document does not exist
|
|
}
|
|
|
|
// -- or --
|
|
|
|
try {
|
|
const doc = await collection.document('my-docs/some-key');
|
|
// the document exists
|
|
assert.equal(doc._key, 'some-key');
|
|
assert.equal(doc._id, 'my-docs/some-key');
|
|
} catch (err) {
|
|
// something went wrong or
|
|
// the document does not exist
|
|
}
|
|
```
|
|
|
|
## documentCollection.save
|
|
|
|
`async documentCollection.save(data, [opts]): Object`
|
|
|
|
Creates a new document with the given _data_ and returns an object containing
|
|
the document's metadata.
|
|
|
|
**Arguments**
|
|
|
|
* **data**: `Object`
|
|
|
|
The data of the new document, may include a `_key`.
|
|
|
|
* **opts**: `Object` (optional)
|
|
|
|
If _opts_ is set, it must be an object with any of the following properties:
|
|
|
|
* **waitForSync**: `boolean` (Default: `false`)
|
|
|
|
Wait until document has been synced to disk.
|
|
|
|
* **returnNew**: `boolean` (Default: `false`)
|
|
|
|
If set to `true`, return additionally the complete new documents under the
|
|
attribute `new` in the result.
|
|
|
|
* **silent**: `boolean` (Default: `false`)
|
|
|
|
If set to true, an empty object will be returned as response. No meta-data
|
|
will be returned for the created document. This option can be used to save
|
|
some network traffic.
|
|
|
|
If a boolean is passed instead of an options object, it will be interpreted as
|
|
the _returnNew_ option.
|
|
|
|
For more information on the _opts_ object, see
|
|
[the HTTP API documentation for working with documents](https://docs.arangodb.com/latest/HTTP/Document/WorkingWithDocuments.html).
|
|
|
|
**Examples**
|
|
|
|
```js
|
|
const db = new Database();
|
|
const collection = db.collection('my-docs');
|
|
const data = {some: 'data'};
|
|
const info = await collection.save(data);
|
|
assert.equal(info._id, 'my-docs/' + info._key);
|
|
const doc2 = await collection.document(info)
|
|
assert.equal(doc2._id, info._id);
|
|
assert.equal(doc2._rev, info._rev);
|
|
assert.equal(doc2.some, data.some);
|
|
|
|
// -- or --
|
|
|
|
const db = new Database();
|
|
const collection = db.collection('my-docs');
|
|
const data = {some: 'data'};
|
|
const opts = {returnNew: true};
|
|
const doc = await collection.save(data, opts)
|
|
assert.equal(doc1._id, 'my-docs/' + doc1._key);
|
|
assert.equal(doc1.new.some, data.some);
|
|
```
|