按日期删除 CouchDB 上的 _deleted 文档
Deleting _deleted documents on CouchDB by date
我的 CouchDb
数据库越来越大,我想按日期删除文档我也想按日期删除 _deleted
文档
我知道如何复制我的数据库按日期删除文档但是:
¿有没有办法对 _deleted
文件做同样的事情?我的意思是按日期
删除 _deleted
个文件
如果您的数据库越来越大,这可能是由于您的文档版本控制所致。释放一些 space 的简单方法是 运行 数据库压缩 (Documentation)
至于 _deleted 文档,您只能真正删除它们 purging
因此,不建议清除_deleted文档。只应删除非常重要的文件,例如凭据。
实际上没有办法使用过滤复制有条件地导致删除,您也不能复制完整删除文档。
您有多种选择:
- 您可以通过过滤日期来避免在旧文档上复制 更新,但是如果它们已经被复制,它们将不会被删除
- 您可以查看 return 个旧文档,并使用脚本在源数据库中删除它们。删除将复制到任何目标数据库,但所有数据库将至少保留文档的
{_deleted:true}
逻辑删除 [这就是删除首先被复制的方式]
- 您可以找到旧文档并_purge它们,但您必须在每个副本上都这样做
你的主要目标是什么?
如果你有数百个对象并且你想从所有副本的 UI 中隐藏旧的对象,请编写一个脚本来查找并 DELETE
/_delete:true
它们来自source/master 副本,更改将传播。
如果你有无数的,例如记录消息,你需要通过忘记旧消息来释放 space,写一个脚本来查找 _purge
最后 _compact
,然后 运行 它在 每个 副本。但是对于这样的情况,最好轮换数据库,例如每周手动 "shard" 或 bin 到不同的数据库中,并且每周只需将 N+1 周旧数据库删除到每个副本上。
我的 CouchDb
数据库越来越大,我想按日期删除文档我也想按日期删除 _deleted
文档
我知道如何复制我的数据库按日期删除文档但是:
¿有没有办法对 _deleted
文件做同样的事情?我的意思是按日期
_deleted
个文件
如果您的数据库越来越大,这可能是由于您的文档版本控制所致。释放一些 space 的简单方法是 运行 数据库压缩 (Documentation)
至于 _deleted 文档,您只能真正删除它们 purging
因此,不建议清除_deleted文档。只应删除非常重要的文件,例如凭据。
实际上没有办法使用过滤复制有条件地导致删除,您也不能复制完整删除文档。
您有多种选择:
- 您可以通过过滤日期来避免在旧文档上复制 更新,但是如果它们已经被复制,它们将不会被删除
- 您可以查看 return 个旧文档,并使用脚本在源数据库中删除它们。删除将复制到任何目标数据库,但所有数据库将至少保留文档的
{_deleted:true}
逻辑删除 [这就是删除首先被复制的方式] - 您可以找到旧文档并_purge它们,但您必须在每个副本上都这样做
你的主要目标是什么?
如果你有数百个对象并且你想从所有副本的 UI 中隐藏旧的对象,请编写一个脚本来查找并 DELETE
/_delete:true
它们来自source/master 副本,更改将传播。
如果你有无数的,例如记录消息,你需要通过忘记旧消息来释放 space,写一个脚本来查找 _purge
最后 _compact
,然后 运行 它在 每个 副本。但是对于这样的情况,最好轮换数据库,例如每周手动 "shard" 或 bin 到不同的数据库中,并且每周只需将 N+1 周旧数据库删除到每个副本上。