如何从文档中删除“_deleted_conflicts”字段?

问题描述 投票:0回答:1

当我使用 HTTP POST 调用 CouchDB 时

/{db}/_design/{designDoc}/_view/{view}
我收到了一份包含该字段的文档
"_conflicts": ["{conflictRev}"]

所以我使用 HTTP POST
/{db}/_bulk_docs
来删除有冲突的修订版:

"docs": [
        {
            "_id": "{docId}",
            "_rev": "{conflictRev}",
            "_deleted": true
        }
    ]

现在,当我尝试检索文档时,我得到了新字段

"_deleted_conflicts": [{deletedConflictRev}]
,它确实扰乱了我的后端应用程序实现,有没有办法从文档中完全删除冲突信息?

我尝试使用 HTTP POST

/{db}/_purge
与:

"docId": [
     "{deletedConflictRev}"
 ]

但是之后该文档消失了,我无法在 couchDB UI 中找到它,也无法在我的应用程序中找到它,看起来像是索引存在问题或在这种情况下发生了一些事情。

我使用CouchDB 3.2.3

database nosql couchdb conflict couchdb-3.x
1个回答
0
投票

我已经通过过滤存储在我的设计文档中的视图中的地图函数中的这些字段来解决这个问题,这两个字段都是我从后端应用程序发送的请求中获得的。现在看起来与此类似:

function(doc) {
  if (!doc._conflicts && !doc._deleted_conflicts) {
    emit([doc._id, doc.someField], doc);
  }
}

这是我找到的一个示例,与我的情况并不完全相同,但我的解决方案基于它,并且我的响应中不再出现不需要的字段。

© www.soinside.com 2019 - 2024. All rights reserved.