You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否让CouchDB的_change API返回所有文档变更历史?

问题解答

首先明确:CouchDB原生的_change API没有直接返回文档完整修订历史的参数选项,它默认只会返回每个文档的最新修订版本信息。

如果不想逐个查询文档获取修订历史,可以试试这两个实用方案:

  • 在文档更新时主动记录修订历史
    每次更新文档时,手动在文档中添加(或更新)一个自定义字段,比如revision_history,把每次的修订ID、更新时间等信息存进去。比如更新前先获取当前文档的_rev,再把它追加到这个字段里。这样_change API返回的文档内容里就自带了完整的修订记录,不需要额外查询。

  • 用批量接口批量获取修订信息
    先通过_change API拿到目标文档的ID列表,然后用/_bulk_get接口批量请求这些文档的修订信息。请求格式示例如下:

    {
      "docs": [
        {"id": "doc_id_1", "revs_info": true},
        {"id": "doc_id_2", "revs_info": true}
      ]
    }
    

    这种方式比逐个请求db/doc?revs_info=true效率高很多,适合处理大量文档的场景。

另外补充:如果需要实时变更流同时携带修订历史,原生API目前做不到,只能结合上面的方案二,拿到变更后批量拉取历史。

内容的提问来源于stack exchange,提问作者FangQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:22:05