most-couchdb

most (data streaming) for CouchDB

Usage no npm install needed!

<script type="module">
  import mostCouchdb from 'https://cdn.skypack.dev/most-couchdb';
</script>

README

most-couchdb: Streaming CouchDB

Synopsis

const CouchDB = require('most-couchdb')
const db = new CouchDB(uri)

await db.get(id)
await db.put(doc)

// Provides async iterators for queries (Mango and legacy)
var S = db.queryAsyncIterable(design, view, {include_docs:true})

for await (rec of S) {
  {doc} = rec
  …
}
// also available as Object Stream and `most` stream.

// `most` (non-blocking) stream for changes
db
.changes({include_docs:true})
.observe( function ({doc}) {
  …
})

with update and merge:

const CouchDB = require('most-couchdb/with-update')
const db = new CouchDB(uri)

await db.update(doc)
await db.merge(id,values)

db.info()

Returns information about the database.

db.create()

Creates the database.

db.destroy()

Deletes the datbase.

db.get(id)

Retrieves the document.

db.get(id,{rev})

Retrieves the document at the given revision.

db.put(doc)

Puts the document (will fail on conflict).

db.has(id)

Returns true if the database contains the document, false otherwise.

`db.has(id,{rev})

db.delete(doc)

Removes the document. (Must at least provide _id and _rev.)

db.findAsyncIterable(params)

Runs a Mango query (CouchDB 2+), returns an async iterator.

db.findStream(params)

Runs a Mango query (CouchDB 2+), returns an object (blocking) Stream.

db.find(params)

Runs a Mango query (CouchDB 2+), returns a most (non-blocking) stream.

db.createIndex(params)

Create a Mango index.

db.queryAsyncIterable(design,view,params)

Runs a design-document's view, returns an async iterator.

db.queryStream(design,view,params)

Runs a design-document's view, returns an object (blocking) Stream.

db.query(design,view,params)

Runs a design-document's view, returns a most (non-blocking) stream.

db.query_changes(map_function)

Monitors changes on the database, returns a most (non-blocking) stream of documents through the map function.

db.changes()

Monitor changes on the database, returns a most (non-blocking) stream of changes.

db.changes(options)

Monitor changes on the database, returns a most (non-blocking) stream of changes.

db.getAttachment(id,name)

Returns a buffer containing the attachment.

db.putAttachment(id,name,rev,buf,type)

Save a buffer as attachment.

db.deleteAttachment(id,name,rev)

Remove an attachment.

db.merge(id,changes)

Update the top fields in the document with the provided values.

Avalaible in most-couchb/with-update.

db.update(data)

Replace the document, but only if changes occurred. (_id is required.)

Avalaible in most-couchb/with-update.

db.bulk_get(docs)

Retrieves documents. docs is an Array of {id,rev}.

Avalaible in most-couchb/with-update.

db.bulk_docs(docs)

Update documents. docs is an Array of documents.

Avalaible in most-couchb/with-update.

db.bulk_merge(ids,changes)

Update the top fields in the documents specified with ids using the values specified in the matching changes.

Avalaible in most-couchb/with-update.

db.bulk_update(datas)

Replaces the documents with the new content, but only if changes occurred.

Avalaible in most-couchb/with-update.