Pregunta

¿Cómo obtener múltiples documentos de CouchDB, en particular con couchdb-python?

¿Fue útil?

Solución 3

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']

Otros consejos

La forma más fácil es pasar un include_docs = True arg a Database.view. Cada fila de los resultados incluirá el documento. por ejemplo,

>>> 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]

Tenga en cuenta que el documento de una fila será Ninguno si el documento no existe.

Esto funciona con cualquier vista, solo proporcione una lista de claves adecuadas para la vista.

Esta es la forma correcta:

import couchdb

server = couchdb.Server("http://localhost:5984")
db = server["dbname"]
results = db.view("_all_docs", keys=["key1", "key2"])
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top