【问题标题】:CouchDB how to exclude documents from ViewCouchDB 如何从视图中排除文档
【发布时间】:2017-11-16 20:12:34
【问题描述】:

我有一个 CouchDB 视图来返回满足特定条件的所有文档。我还针对同一个数据库运行了 "all_docs"。在这种特殊情况下,我的视图返回 845 个文档,而 all_docs 返回 1127 个文档。

有没有办法编写一个视图来有效地做相反的事情,并返回所有不符合我指定条件的文档?由于我的数据库包含 1127 个文档,而我的视图包含 845 个文档,我如何识别 282 个差异?

【问题讨论】:

    标签: javascript mapreduce couchdb


    【解决方案1】:

    您可以有两个视图或一个视图。

    单一视图(人)

    function(doc){
      var matchMyCriteria = doc.type ==="person";
      emit(matchMyCriteria);
    }
    

    如果我想要每个“人”类型的文档文档,我查询:

    _design/docname/_view/by_person?key="true"

    如果我想要所有其他文件

    _design/docname/_view/by_person?key="false"


    两个视图(人)

    function(doc){
      if(doc.type == "person")
         emit(doc.id);
    }
    

    not_person

    function(doc){
      if(doc.type != "person")
         emit(doc._id);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多