CouchDB筛选器是否仅限于_changes提要?
按照规定,过滤器可与_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"
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加载所有视图文档,对其执行筛选函数并返回。但这不会很快。事实上,过滤器是在计算机中使用的。