Learn R Programming

sofa (version 0.4.2)

db_bulk_get: Query many documents at once

Description

Query many documents at once

Usage

db_bulk_get(cushion, dbname, docid_rev, as = "list", ...)

Value

Either a list or json (depending on as parameter)

Arguments

cushion

A Cushion object. Required.

dbname

(character) Database name. Required.

docid_rev

A list of named lists, each of which must have the slot id, and optionally rev for the revision of the document id

as

(character) One of list (default) or json

...

Curl args passed on to HttpClient

Examples

Run this code
if (FALSE) {
# initialize a CouchDB connection
user <- Sys.getenv("COUCHDB_TEST_USER")
pwd <- Sys.getenv("COUCHDB_TEST_PWD")
(x <- Cushion$new(user = user, pwd = pwd))

if ("bulkgettest" %in% db_list(x)) {
  invisible(db_delete(x, dbname = "bulkgettest"))
}
db_create(x, dbname = "bulkgettest")
db_bulk_create(x, "bulkgettest", mtcars)
res <- db_query(x, dbname = "bulkgettest", selector = list(cyl = 8))

# with ids only
ids <- vapply(res$docs, "[[", "", "_id")
ids_only <- lapply(ids[1:5], function(w) list(id = w))
db_bulk_get(x, "bulkgettest", docid_rev = ids_only)

# with ids and revs
ids_rev <- lapply(
  res$docs[1:3],
  function(w) list(id = w$`_id`, rev = w$`_rev`)
)
db_bulk_get(x, "bulkgettest", docid_rev = ids_rev)
}

Run the code above in your browser using DataLab