Múltiple recuperación de documentos CouchDB con couchdb-python
Pregunta
¿Cómo obtener múltiples documentos de CouchDB, en particular con couchdb-python?
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