'doc_del_count' 大于 CouchDB 上的 'doc_count'

'doc_del_count' bigger than 'doc_count' on CouchDB

我刚刚收到一个与 CouchDBCouchBase Lite 一起工作的 Android 项目。

应用程序的第一步是复制,复制或多或少花费了2个多小时,但通常永远不会完成。

在数据库站点上我可以看到 doc_del_count 比 doc_count 大,这没有意义,因为我们从不删除文件。

在这种情况下,复制过程处理了 519695 个文档,其中 498264 个被删除,太疯狂了

我的问题是:
为什么复制下载 doc_del_count 如果它们是被删除的文件?
我怎样才能看到那些被删除的文档?
我可以删除所有这些 doc_del_count 吗?怎么样?

Why replication download doc_del_count if they are deleted documents?

因为删除的文档在 CouchDB 中永远不会真正删除。相反,_deleted 字段设置为 true。这主要是为了允许在多个位置发生更新的情况下进行适当的同步。想象一下,一个文档从一个地方被删除,但在另一个地方被更新以包含新信息。哪个操作应该优先? CouchDB 无从知晓,因此它保留了两个版本,并让应用程序设计人员按照他们认为合适的方式处理冲突解决方案。

How Can I see those deleted documents?

咨询this answer for details, but the short answer is: include revs_info=true in your query per the documentation

Can I removed all those doc_del_count? How?

您可以 compact 数据库,但这不会删除已删除的文档,原因如上所述。