
{% include anchor.html edit="true" title="Fetch a document" hash="fetch_document"%}

{% highlight "js" %}
db.get(docId, [options], [callback])
{% endhighlight %}

Retrieves a document, specified by `docId`.

### Options

All options default to `false` unless otherwise specified.

* `options.rev`: Fetch specific revision of a document. Defaults to winning revision (see [the CouchDB guide](http://guide.couchdb.org/draft/conflicts.html)).
* `options.revs`: Include revision history of the document.
* `options.revs_info`: Include a list of revisions of the document, and their availability.
* `options.open_revs`: Fetch all leaf revisions if `open_revs="all"` or fetch all leaf revisions specified in `open_revs` array. Leaves will be returned in the same order as specified in input array.
* `options.conflicts`: If specified, conflicting leaf revisions will be attached in `_conflicts` array.
* `options.attachments`: Include attachment data.
  * `options.binary`: Return attachment data as Blobs/Buffers, instead of as base64-encoded strings.
* `options.latest`: Forces retrieving latest “leaf” revision, no matter what rev was requested. Default is `false`.

#### Example Usage:

{% include code/start.html id="get1" type="callback" %}
{% highlight "js" %}
db.get('mydoc', function(err, doc) {
  if (err) { return console.log(err); }
  // handle doc
});
{% endhighlight %}
{% include code/end.html %}

{% include code/start.html id="get1" type="async" %}
{% highlight "js" %}
try {
  const doc = await db.get('mydoc');
} catch (err) {
  console.log(err);
}
{% endhighlight %}
{% include code/end.html %}

{% include code/start.html id="get1" type="promise" %}
{% highlight "js" %}
db.get('mydoc').then(function (doc) {
  // handle doc
}).catch(function (err) {
  console.log(err);
});
{% endhighlight %}
{% include code/end.html %}

#### Example Response:
{% highlight "js" %}
{
  "_id": "mydoc",
  "_rev": "1-A6157A5EA545C99B00FF904EEF05FD9F"
  "title": "Rock and Roll Heart",
}
{% endhighlight %}

The response contains the document as it is stored in the database, along with its
`_id` and `_rev`.
