2011-02-11 17 views
7

Estaba trabajando en couchdb-python (http://code.google.com/p/couchdb-python/) y me preguntaba si tengo alguna forma de recuperar una lista completa de las revisiones que se han producido en un nivel de documento?Obteniendo la lista completa de revisiones en el nivel del documento usando CouchDB-Python?

Supongamos que tengo una base de datos llamada "películas" y contiene varios documentos. Cada uno de mis documentos tiene más de 3 revisiones.

¿Puedo recuperar mis documentos según las revisiones?

En caso afirmativo, ¿cómo? No vi ningún método obvio para hacerlo usando CouchDB-Python

Respuesta

7

No estoy seguro acerca de couchdb-python, sin embargo, puede obtener todo el historial de revisión conocido de un documento a través de la API HTTP.

Conozca todo al respecto en la documentación CouchDB Document API.

Una consulta normal:

$ curl jhs.couchone.com/db/doc 
{ _id: 'doc', 
    _rev: '3-825cb35de44c433bfb2df415563a19de' } 

Añadir ?revs=true para ver una serie de revisiones viejas.

$ curl jhs.couchone.com/db/doc?revs=true 
{ _id: 'doc', 
    _rev: '3-825cb35de44c433bfb2df415563a19de', 
    _revisions: 
    { start: 3, 
    ids: 
     [ '825cb35de44c433bfb2df415563a19de', 
     '7051cbe5c8faecd085a3fa619e6e6337', 
     '967a00dff5e02add41819138abb3284d' ] } } 

También puede agregar ?revs_info=true para más detalles acerca de las revisiones, como si todavía están disponibles (es decir, que se agregaron después de la última compactación y puede buscarlos).

$ curl jhs.couchone.com/db/doc?revs_info=true 
{ _id: 'doc', 
    _rev: '3-825cb35de44c433bfb2df415563a19de', 
    _revs_info: 
    [ { rev: '3-825cb35de44c433bfb2df415563a19de', 
     status: 'available' }, 
    { rev: '2-7051cbe5c8faecd085a3fa619e6e6337', 
     status: 'available' }, 
    { rev: '1-967a00dff5e02add41819138abb3284d', 
     status: 'available' } ] } 
+0

hola, gracias por su respuesta. ¿Puedo recuperar el documento basado en el historial de revisión? Por ejemplo, documento con ID: 132, revisión 3? – DjangoRocks

+0

Usando el último método que mostré '? Revs_info = true', usted * puede * ver qué revisiones puede recuperar. Mostrarán 'status: 'available''. Sin embargo, CouchDB siempre está compactando, por lo que no puede suponer que sus datos estarán allí. – JasonSmith

Cuestiones relacionadas