couchdb - 查询时间(修订)

时间:2012-10-13 23:56:01

标签: couchdb

我有一个存放文章的couchdb数据库。

我忘了存储文章的创建日期,例如:不created_at但只有updated_at

我想找回最旧的文章,我的意思是第一篇创建

由于文章有修订版,我想我可以查询updated_at我所有文章的每个第一版本,从而推断出第一篇文章的创建时间吗?

是否可以使用couchdb进行此类查询?

1 个答案:

答案 0 :(得分:2)

不,CouchDB版本与版本控制系统的修订版本不同。 _rev字段是MVCC令牌,有助于解决写入冲突并达到eventual consistency。事实上,CouchDB存储以前的文档修订版,但不能通过视图或其他设计函数访问它们,它们也将在下次数据库压缩时被删除,并且它们的编号受/db/_revs_limit选项的限制。

您可以尝试恢复updated_at字段的先前值,并将最旧的字段设置为created_at字段。可以使用couchdb-python

完成
import couchdb
server = couchdb.Server()
db = server['my_db']
for idx in db:
    doc = db[idx]
    for olddoc in db.revisions(idx):
        # skips all revisions, we interested in last one as oldest
        pass
    doc['created_at'] = olddoc['updated_at']
    db.save(doc)