0
我有一个存储文章的couchdb数据库。couchdb - 通过时间查询(修订版)
我忘记存储我的文章的创建日期,例如:没有created_at
但只有一个updated_at
我想找回最古老的文章,我的意思是,第一这是创建。
由于文章有修改,我想我可以查询updated_at
我的所有文章的每个第一版,从而推断出第一篇文章的创建时间?
是否可以使用couchdb进行这样的查询?
我有一个存储文章的couchdb数据库。couchdb - 通过时间查询(修订版)
我忘记存储我的文章的创建日期,例如:没有created_at
但只有一个updated_at
我想找回最古老的文章,我的意思是,第一这是创建。
由于文章有修改,我想我可以查询updated_at
我的所有文章的每个第一版,从而推断出第一篇文章的创建时间?
是否可以使用couchdb进行这样的查询?
不,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)