-
Notifications
You must be signed in to change notification settings - Fork 10
Document
Represents a CouchDB document. DesignDocument and LocalDocument also inherit directly from this.
The first parameter is required, it can either be just a String
_id
, or it can be an Object
representing the document body.
The second parameter is optional, and it's the _rev
of the document. (if it is known)
var couchdb = require("couchdb-api");
var db = couchdb().db("mydb");
// a document with a known id
var doc = db.doc("mydoc");
// a document with a known id and rev
var doc = db.doc("mydoc", "some-rev");
// a document with a body
var doc = db.doc({
hello: "world"
});
This helper method is for generating a String
URL relative to the document. If path
is specified,
it will resolve that path relative to the document's base URL. (therefore, beginning a path with
will make the resolved path relative to the server itself) path
can also be an Array:String
.
var base = doc.url();
// => http://localhost:5984/mydb
var attachment = doc.url("myattachment.txt");
// => http://localhost:5984/mydb/mydoc/myattachment.txt
var root = doc.url("/");
// => http://localhost:5984/
This helper method gets or sets the _id
property on the body of this document.
// getter
var id = doc.id();
// setter
doc.id("some-other-id");
This helper method gets or sets the _rev
property on the body of this document.
// getter
var rev = doc.rev();
// setter
doc.rev("some-other-rev");
This helper method gets or sets the body of this document.
Note: If you leave out the _id
or _rev
properties, it will affect what the behavior of
various write commands to this document object. (eg: save, delete, etc)
If you only wish to augment the body, use Document#extend()
instead. If you want to remove the
current contents of the document, preserving the _id
and _rev
, then use Document#empty()
// getter
var body = doc.body();
// setter
doc.body({
_id: "some-id",
hello: "world"
});
This helper method removes all contents of the document's body except for _id
and _rev
.
var doc = db.doc({
_id: "abc-123",
hello: "world",
foo: "bar"
});
doc.empty();
var body = doc.body();
// => { _id: "abc-123" }
This helper method augments the current contents of the body via extend.
var doc = db.doc({ hello: "world" });
doc.extend({ foo: "bar" });
var body = doc.body();
// => { hello: "world", foo: "bar" }
DELETE /{db}/{doc}
CouchDB Documentation
Deletes this document.
Note: If you are deleting an existing document, you will need the _rev
number before the delete will
be successful. (like any other write operation) Currently, if you don't know the revision number ahead of
time, you will need to call Document#get(callback)
prior to deleting.
doc.destroy(function (err, results) {
// ...
});
HEAD /{db}/{doc}
CouchDB Documentation
Checks for this document's existence.
doc.exists(function (err, exists) {
// ...
});
GET /{db}/{doc}
CouchDB Documentation
Retrieves this document from the server.
Note: Currently, additional querystring parameters (like attachments
or rev
) are not supported.
doc.get(function (err, body) {
// ...
});
-
PUT /{db}/{doc}
CouchDB Documentation -
POST /{db}
CouchDB Documentation
Saves the body of the document to the server. If an _id
is present, it will use the PUT
method.
Otherwise, it will use a POST
instead.
Note: Currently, additional querystring parameters (like batch
) are not supported.
doc.save(function (err, results) {
// ...
});
-
GET /{db}/_design/{ddoc}/_show/{func}
CouchDB Documentation -
POST /{db}/_design/{ddoc}/_show/{func}
CouchDB Documentation -
GET /{db}/_design/{ddoc}/_show/{func}/{docid}
CouchDB Documentation -
POST /{db}/_design/{ddoc}/_show/{func}/{docid}
CouchDB Documentation
Runs this document object (can be a null
document if _id
is unspecified) through a show function.
The name
parameter must be a string formatted like {ddoc}/{showfn}
. (denoting both the design document
and show function name)
If a request body is specified, (via the optional body
argument) then the request will be a POST
instead of a GET
.
// typical show via GET
doc.show("myddoc/myshowfn", function (err, results) {
// ...
});
// show via POST (with request body)
ddoc.show("myddoc/myshowfn", { hello: "world" }, function (err, results) {
// ...
})
-
POST /{db}/_design/{ddoc}/_update/{func}
CouchDB Documentation -
PUT /{db}/_design/{ddoc}/_update/{func}/{docid}
CouchDB Documentation
Runs an update handler for this document object. (can be a null
document if no _id
is specified)
The name
parameter must be a string formatted like {ddoc}/{updatefn}
. (denoting both the design document
and update handler function name)
Like the Document#save()
method, this will switch between PUT
and POST
depending on whether an _id
is present
or not.
// typical show via GET
doc.show("myddoc/myshowfn", function (err, results) {
// ...
});
// show via POST (with request body)
ddoc.show("myddoc/myshowfn", { hello: "world" }, function (err, results) {
// ...
})