CouchdbClient.Document
Very minimalistic wrapper around CouchDB API (tested against CouchDB 1.5.0).
Examples
iex> alias CouchdbClient.Database, as: DB nil
iex> alias CouchdbClient.Document, as: Doc nil
iex> db = %DB{ host: “127.0.0.1”, port: “5984”, name: “test_database” } %CouchdbClient.Database{host: “127.0.0.1”, name: “test_database”, port: “5984”, scheme: “http”}
iex> doc = %Doc{ id: “test_document”, data: %{ “foo” => “bar” } } %CouchdbClient.Document{data: %{“foo” => “bar”}, id: “test_document”, rev: nil}
iex> doc = Doc.insert doc, db %CouchdbClient.Document{data: %{“_rev” => _REV1, “foo” => “bar”}, id: “test_document”, rev: _REV1 }
iex> doc = Doc.set doc, %{ “boom” => “bang” } %CouchdbClient.Document{data: %{“_rev” => _REV1, “boom” => “bang”, “foo” => “bar”}, id: “test_document”, rev: _REV1 }
iex> doc = Doc.update doc, db %CouchdbClient.Document{data: %{“_rev” => rev2, “boom” => “bang”, “foo” => “bar”}, id: “test_document”, rev: rev2 }
iex> Doc.get_rev doc, db rev2
iex> Doc.delete doc, db :ok
Summary
Functions
Deletes the document. Returns :ok
Performs a HEAD request to CouchDB to retrieve the current revision tag. This is useful if you’d like to attach files to a document you don’t actually have already loaded
Inserts document. If document has no ID, a server-generated id will be set. Returns freshly inserted document (with id/rev)
Loads the document from DB. Both :database and :id attributes must be set for this to work
Inserts or updates a document. Returns inserted/updated document
Merges data into document’s data
Updates document
Returns the document’s URL
Functions
Performs a HEAD request to CouchDB to retrieve the current revision tag. This is useful if you’d like to attach files to a document you don’t actually have already loaded.
Returns a document with data set to nil to prevent this document to be saved.
Inserts document. If document has no ID, a server-generated id will be set. Returns freshly inserted document (with id/rev)
Loads the document from DB. Both :database and :id attributes must be set for this to work.
Merges data into document’s data.
doc = CouchdbClient.Document.set document, %{ bar: “baz” }