我有一个使用本地存储(PouchDB)的角度应用程序,它可以自动与远程服务器上的CouchDB数据库同步。
由于我想限制我的应用程序大小,我希望能够根据条件从CouchDB自动归档。
这是我想象的:
你可以说我可以在我的应用程序中执行此操作,但问题是当应用程序脱机使用时,它无法直接访问远程CouchDB以复制到另一个数据库。
所以我的问题是,CouchDB能否根据doc中的值(例如archived = true)自动将文档复制到另一个数据库(在同一个CouchDB中)?如果没有,你会建议什么?
答案 0 :(得分:3)
要保留每个文档的最后一个未删除版本,您可以在"数据"之间建立连续复制。和"备份" couchdb数据库具有阻止_deleted
文档复制的过滤器函数,例如:
function(doc, req){
return !doc._deleted
}
要专门保留archive
属性设置的文档,您需要调整过滤器功能:
function(doc, req){
return !doc._deleted && doc.archive
}
但是,现在归档文档包含两个步骤:
archive
属性保存它,触发其复制到您的"数据"数据库(从而触发其复制到"备份"数据库)答案 1 :(得分:1)
我不认为CouchDB拥有您正在寻找的确切解决方案。但是,另一种方法是删除文档。 CouchDB存储完整的修订历史记录(默认情况下最多1000个修订版),但是当它复制时,它只会复制一个存根:{_deleted: true}
。