【问题标题】: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);
}