CouchDB如何从View中排除文档

时间:2017-11-16 20:12:35

标签: javascript mapreduce couchdb

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

有没有办法对View进行编码以有效地执行逆操作,并返回所有不符合我指定条件的文档?由于我的数据库包含1127个文档,而我的视图包含845个文档,如何识别282个文档?

1 个答案:

答案 0 :(得分:0)

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

单一视图(人)

children.erase(
    std::remove_if(
        std::begin(children), 
        std::end(children), 
        [&name](const BaseFile* x){ return x->getName() == name; }
    ),
    std::end(children)
);

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

  

_design / DOCNAME / _view / by_person?键= “真”

如果我想要其他所有文件

  

_design / DOCNAME / _view / by_person?键= “假”

两个视图(人)

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

not_person

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