使用couchdb-python批量获取CouchDB文档
如何从CouchDB中获取多个文档,特别是使用couchdb-python这个库?
3 个回答
4
这是正确的方法:
import couchdb
server = couchdb.Server("http://localhost:5984")
db = server["dbname"]
results = db.view("_all_docs", keys=["key1", "key2"])
22
最简单的方法是给Database.view传一个参数include_docs=True。这样,结果的每一行都会包含文档的内容。例如:
>>> db = couchdb.Database('http://localhost:5984/test')
>>> rows = db.view('_all_docs', keys=['docid1', 'docid2', 'missing'], include_docs=True)
>>> docs = [row.doc for row in rows]
>>> docs
[<Document 'docid1'@'...' {}>, <Document 'docid2'@'...' {}>, None]
需要注意的是,如果文档不存在,那么这一行的文档内容会是None,也就是没有内容。
这个方法适用于任何视图,只要提供一个适合该视图的键的列表就可以了。
-7
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们需要确保在这个过程中,数据不会被意外地改变或者丢失。就像我们在倒水的时候,要小心不要洒出来一样。
为了做到这一点,程序员会使用一些特定的工具和方法来管理这些数据。这样可以确保数据的安全性和完整性,就像我们用一个漏斗来帮助我们把水倒得更顺利。
总之,处理数据就像是一个小小的实验,确保我们能把需要的东西安全地从一个地方转移到另一个地方,而不会出错。
import couchdb
import simplejson as json
resource = couchdb.client.Resource(None, 'http://localhost:5984/dbname/_all_docs')
params = {"include_docs":True}
content = json.dumps({"keys":[idstring1, idstring2, ...]})
headers = {"Content-Type":"application/json"}
resource.post(headers=headers, content=content, **params)
resource.post(headers=headers, content=content, **params)[1]['rows']