CouchDB-删除后未更新视图

CouchDB-删除后未更新视图,couchdb,Couchdb,我有一个类似的观点(一个人为的例子): 函数(doc){ 如果(attrib文件){ 发出([doc.attrib],doc.\u id) } } 在删除数据之前,一切都按预期进行。我得到了一个疯狂的场景,实际数据库中没有数据(通过curl上运行的所有文档和更改以及Futon上的所有文档确认)。然而,该视图仍然会产生数据(同样是关于旋度和蒲团的数据) 删除包括通过ektorp进行的批量删除和清除操作。每次运行后都会进行更改,以确认这些工作符合预期。重新创建视图可以使其反映数据库中文档的真实状态

我有一个类似的观点(一个人为的例子):

函数(doc){
如果(attrib文件){ 发出([doc.attrib],doc.\u id) }
}

在删除数据之前,一切都按预期进行。我得到了一个疯狂的场景,实际数据库中没有数据(通过curl上运行的所有文档和更改以及Futon上的所有文档确认)。然而,该视图仍然会产生数据(同样是关于旋度和蒲团的数据)

删除包括通过ektorp进行的批量删除和清除操作。每次运行后都会进行更改,以确认这些工作符合预期。重新创建视图可以使其反映数据库中文档的真实状态


我是否遗漏了一些明显的内容,或者CouchDB中的视图只是增量的?

您真的清除了数据吗?这将使视图无效并导致完全重建。我要注意的是_purge不建议正常使用。它只存在于意外情况下,比如将明文密码放入文档中

不过,您可能在_purge中暴露了一个bug,因此,如果您可以通过_purge可靠地诱发这个bug,但如果您只是删除,我建议您在我们的JIRA上提交一份记录(https://issues.apache.org/jira/browse/COUCHDB)


我还将注意到,如果清除,修复方法将是清除索引,不可能使用增量方法(实际上是删除增量方法所需的信息)。

是的,我确实清除了数据-不是明确清除,而是通过ektorp清除。我可以通过在清除之前和之后运行_更改来验证清除是否成功。关于_purge的使用,如果不建议正常使用,那么即使在删除之后也不应该重建视图吗?到目前为止,我的经验是,每次从视图中查询数据时都会重建视图,但在删除数据后不会重建视图。视图仅在查询时更新,但这包括删除已删除的数据。当数据被清除时,有一些代码可以清除整个索引并重新开始(因为通常不可能增量清除)。如果您在删除数据后在视图中看到数据,那么假设您没有使用stale=ok.Hi,Bob,这就是一个bug+1、这很有启发性。我记得很久以前研究过这个问题,我发布了一个完全猜测的答案。我无法复制它,你能提供更多细节吗?您可以使用curl复制它并发布使用的命令的确切序列吗?始终有“作为服务调试”选项。获得一个免费的云CouchDB帐户,触发你的错误,然后将问题归咎于他们。他们会竞相(1)修复他们的bug,或者(2)向你展示你的bug,向你证明这不是他们的错!