CouchDB - 由PUT _deleted属性删除的文档仍然可用

时间:2018-02-16 20:08:39

标签: database synchronization couchdb pouchdb

我通过将_deleted属性设置为true(PUT方法)来删除CouchDB中的文档。文档的最后一个版本已删除,但以前的版本仍然可用。

当我从数据库中提取特定类型的文档时,此文档仍然可用。

我应该如何删除文件?

我使用服务器上的CouchDB和移动应用程序(Ionic)上的PouchDB实例之间的同步。

1 个答案:

答案 0 :(得分:1)

您需要压缩数据库。压缩是从数据库或视图索引文件中删除未使用和旧数据的过程,与RDBMS中的vacuum不同。可以通过调用数据库的_compact端点来触发它,例如curl -X POST http://192.168.99.100:5984/koi/_compact -H'Content-Type: application/json'。之后,尝试访问已删除文档的先前修订版应返回错误404,原因为missing

请注意,文档本身不会完全消失,称为"墓碑"将落在后面。原因是CouchDB需要在复制期间跟踪已删除的文档,以防止意外的文档恢复。