Cloudant过滤复制,从目标中删除文档

时间:2016-05-08 15:28:56

标签: couchdb cloudant

我每个用户都有一个数据库,我使用过滤后的复制将标记为public的文档发送到一个公共数据库。我有这个工作。现在,当用户将其文档从公共更改为私有时,复制不会从公共数据库中清除该文档。

除了从userDb读取所有私有文档,然后从公共db中删除它们(如果它们存在)之外,还有通过基本复制功能实现这一目的吗?

1 个答案:

答案 0 :(得分:0)

简短回答:不。

答案很长:除非在本地数据库中删除了文档,否则复制器不会删除远程文档。过滤函数只是确定允许复制的内容。因此,您的用例可以完成,但如果用户将文档更改为私有,我认为会稍微滥用CouchDB模型,您可以:

  1. 在用户进行更改的设备上缓存文档内容。
  2. 删除远程数据库中的文档
  3. 使用缓存的内容重新创建文档,并更新字段以指示它是私有的。
  4. 只要您的过滤器功能允许删除被复制到远程,文档将被删除,但是关于CouchDB如何删除文档的常见警告适用。