CouchDB筛选器是否仅限于_changes提要?

CouchDB筛选器是否仅限于_changes提要?,couchdb,Couchdb,按照规定,过滤器可与_changes提要一起使用,如下所示: curl "$HOST/db/_changes?filter=app/important" curl -X GET $HOST/db/_design/live_data/_view/all-comments&filter=live_data/bytag?tag=testing 现在,我尝试将此模式与标准视图访问一起使用,如下所示: curl "$HOST/db/_changes?filter=app/important"

按照规定,过滤器可与_changes提要一起使用,如下所示:

curl "$HOST/db/_changes?filter=app/important"
curl -X GET $HOST/db/_design/live_data/_view/all-comments&filter=live_data/bytag?tag=testing
现在,我尝试将此模式与标准视图访问一起使用,如下所示:

curl "$HOST/db/_changes?filter=app/important"
curl -X GET $HOST/db/_design/live_data/_view/all-comments&filter=live_data/bytag?tag=testing
我也试过了?而不是&:

curl -X GET $HOST/db/_design/live_data/_view/all-comments?filter=live_data/bytag?tag=testing
但是过滤器没有效果:所有文档都会显示,即使那些不应该由过滤器验证的文档也是如此

我使用的过滤器是:

function(doc, req)
{
  for( var i in doc.tags ) {
    if(doc.tags[i] == req.query.tag) {
      return true;
    }
  }
  return false;
}
  • 我在打电话的时候做错什么了吗
  • 是否可以将视图与过滤器一起使用,或者过滤器仅限于
    \u更改
    提要?除了与
    \u更改相关的过滤器外,我没有看到任何过滤器示例

是的,过滤器似乎仅限于更改请求。
如果您想从视图中筛选数据,可以使用“startkey”和“endkey”参数以及可能更复杂的json键和/或降低分组级别,以获得所需的结果。

如果这样做有效,CouchDB将承担迭代所有视图记录并对其执行筛选功能的责任。这不是一种很好的方法,尤其是当您可以使用视图和键数组(如
[date,tag]
)对文档进行预索引时

但是没有什么可以阻止您在自己的后端实现这个过滤器。您只需从CouchDB加载所有视图文档,对其执行筛选函数并返回。但这不会很快。

事实上,过滤器是在计算机中使用的。