【发布时间】:2023-03-29 12:35:01
【问题描述】:
每个用户有一个 db,我使用过滤复制将标记为 public 的文档发送到单个公共数据库中。我有这个工作。现在,当用户将其文档从公共更改为私有时,复制不会从公共数据库中清除该文档。
除了从 userDb 读取所有私有文档,然后从公共 db 中删除它们(如果它们存在)之外,是否有通过基本复制功能来完成此操作?
【问题讨论】:
每个用户有一个 db,我使用过滤复制将标记为 public 的文档发送到单个公共数据库中。我有这个工作。现在,当用户将其文档从公共更改为私有时,复制不会从公共数据库中清除该文档。
除了从 userDb 读取所有私有文档,然后从公共 db 中删除它们(如果它们存在)之外,是否有通过基本复制功能来完成此操作?
【问题讨论】:
简短回答:不。
长答案:除非文档在本地数据库中被删除,否则复制器不会删除远程文档。过滤器函数只是确定允许复制的内容。所以你的用例可以完成,但如果用户将文档更改为私有,我认为这会稍微滥用 CouchDB 模型,你可以:
只要您的过滤器功能允许将删除复制到远程,文档就会被删除,但是关于 CouchDB 如何删除文档的常见警告适用。
【讨论】: