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)