在couchbase中过滤空间视图响应



下面是我在Couchbase中通过提供边界框参数得到的空间视图查询的响应:

{
    "rows":[
        {
            "geometry":{
                "type":"Point",
                "coordinates":[
                    -71.10364,
                    42.381411
                ]
            },
            "value":{
                "location":{
                    "type":"Point",
                    "coordinates":[
                        -71.10364,
                        42.381411
                    ]
                },
                "name":"test",
                "visibility":"public",
            },
            "id":"test",
            "key":[
                [
                    -71.10364,
                    -71.10364
                ],
                [
                    42.381411,
                    42.381411
                ]
            ]
        }
    ]
}
下面是我的空间视图查询:-
function (doc, meta) {
    if (doc.type == "folder" && doc.location && doc.location.type) {
          if(doc.location.type=='Point'){ 
             var visibility      = doc.enabled === true ? 'public' : 'private';
              emit(doc.location, {
                name:doc.name,
                folder_id:doc.folder_id,
                location: doc.location,
                visibility:visibility
              });
          }
    }
}

但是JSON响应包含不需要的数据,所以我想知道如何从JSON响应中删除几何参数。

查询还返回前10条记录,是否有任何方法可以设置限制和跳过参数,以便查询返回所有数据而不是前10条。

回答你问题的后半部分(下次请发布两个单独的问题):是的,视图支持分页。您可以设置结果的数量。您可以为每个页面请求x个结果,也可以为不同的页面请求x个结果。参见:http://blog.couchbase.com/pagination-couchbase

并且:dev-views只在bucket的一部分上工作。发布它们以获得与整个数据对应的结果。

您不能删除geometrykey -它们都是结果的一部分。如果你不想使用它们,就不要对它们做任何事情。

最新更新