couchdb - Cloudant 上使文档过期的设计模式

标签 couchdb cloudant

因此,当删除文档时,元数据实际上会永久保留。对于像 cloudant 这样的托管服务,每个月都会产生存储费用,我反而想完全清除已删除的文档。

我在某处读到过有关您使用 dbcopy 的设计模式的信息。为了将文档放入“当前”数据库,然后定期删除过期的数据库。但我找不到这篇文章,而且我不太明白数据库命名是如何工作的。 Cloudant 客户端如何始终知道“当前”数据库名称?

最佳答案

Cloudant 不会公开 _purge 端点(集群节点之间的松散一致性保证使清除变得棘手)。

此问题最常见的解决方案是创建第二个数据库并使用带有 validate_document_update 的复制,以便拒绝目标数据库中没有现有条目的已删除文档。复制完成后(如果使用连续复制,则为可接受的最新状态),将应用程序切换为使用新数据库并删除旧数据库。目前无法重命名数据库,但您可以使用指向“当前”数据库的虚拟主机。

我要提醒您的是,生成高比例已删除:事件文档的工作负载通常是 Cloudant 中的反模式。我首先会考虑是否可以更改文档模型来避免它。

关于couchdb - Cloudant 上使文档过期的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875558/

相关文章:

javascript - PouchDB 检测未同步的文档

angularjs - 如何使用 Passport Js 将 mongodb 用户迁移到 Couchdb?

cloudant - 在cloudant bluemix中复制数据时如何获取密码?

swift - iOS Swift 4/来自 cloudant 连接的响应

database - 大文档与多文档

javascript - 如何查询数组中的元素

database - 是否有轻量级、可嵌入的键/值数据库? (类似于 diet couchdb)

Cloudant 选择器查询数组字段

node.js - Bluemix Node+Cloudant 样板 - EOF 错误

couchdb - 具有部分读者访问权限的 Couchapp