如何使用CouchDB-Python获取文档级别的完整修订列表?
我在使用couchdb-python这个库(http://code.google.com/p/couchdb-python/),我想知道有没有办法获取某个文档的所有版本列表。
假设我有一个叫“movies”的数据库,里面有好几个文档。每个文档都有超过3个版本。
我能根据这些版本来获取我的文档吗?
如果可以的话,怎么做呢?我没有看到使用CouchDB-Python有明显的方法可以做到这一点。
2 个回答
2
你可能需要用到Database.revisions这个方法,具体可以参考这个链接:http://code.google.com/p/couchdb-python/source/browse/couchdb/client.py#545。
14
我不太确定couchdb-python的情况,不过你可以通过HTTP接口获取一个文档的所有已知版本历史。
想了解更多,可以查看CouchDB文档API的说明。
一个普通的查询示例:
$ curl jhs.couchone.com/db/doc
{ _id: 'doc',
_rev: '3-825cb35de44c433bfb2df415563a19de' }
在查询后面加上?revs=true
,这样就能看到一个旧版本的数组。
$ curl jhs.couchone.com/db/doc?revs=true
{ _id: 'doc',
_rev: '3-825cb35de44c433bfb2df415563a19de',
_revisions:
{ start: 3,
ids:
[ '825cb35de44c433bfb2df415563a19de',
'7051cbe5c8faecd085a3fa619e6e6337',
'967a00dff5e02add41819138abb3284d' ] } }
你还可以加上?revs_info=true
,这样可以获取更多关于版本的信息,比如这些版本是否仍然可用(也就是说,它们是在最后一次压缩后添加的,你可以获取到它们)。
$ 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' } ] }