【问题标题】:View to get _changes with specific values查看以获取具有特定值的 _changes
【发布时间】:2011-06-20 08:28:59
【问题描述】:

我可以通过以下方式获取最新更改的文档:

localhost:5984/_changes

然后使用返回的documentID获取文档

localhost:5984/documentID

我想知道是否可以将它们组合成一个视图 - 视图将执行 _changes,获取具有特定 documentID 的文档并返回这些

【问题讨论】:

    标签: couchdb


    【解决方案1】:

    如果您添加 ?include_docs=true 参数,更改查询也可以包括整个文档。

    要只查看部分文档而不是全部,您可以使用过滤功能:http://guide.couchdb.org/draft/notifications.html#filters

    调用过滤后的_changes feed时,也可以提供参数,即

     localhost:5984/db/_changes?include_docs=true&filter=foo/docs&id=docid
    

    用作过滤器:

    function(doc, req)
    {
      if(doc._id == req.query.id) {
        return true;
      }
    
      return false;
    }
    

    这将只返回那些匹配过滤器的文档,包括文档正文。

    【讨论】:

    • 实际上,我想要一些不同的东西 - 现在 _changes 为我提供已更新文档的 ID 列表,我想要其他文档属性,即如果我的文档有字段 doc.firstname 和 doc.lastname,我希望 _changes 或视图/过滤器返回更改后的 doc.lastname、doc.firstname 对,而不是 doc._id
    • 然后使用更新处理程序,在此特定更改上设置一个特殊标志,并在 _changes 过滤标志。
    • _changes 也可以实现您想要的。我会稍微更新一下这个答案以展示如何。
    • 过滤文档 id 不是一个真实的用例(您可以直接查询文档),但是这个例子很好而且清晰。
    猜你喜欢
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2014-02-13
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多