获取View的信息
访问集群内任意节点的8092端口获得view的信息。
HTTP方法和URL
GET /[bucket-name]/_design/[ddoc-name]/_view/[view-name]
涵义:
- bucket-name 是bucket的名称。
- ddoc-name 是包含view的design document的名称。
- view-name 是design document内的view名称。
Development view的 ddoc-name 以 dev_ 作为前缀。比如说处于开发状态的design document beer 需要通过dev_beer访问。.
发布版的view就只能直接通过名称访问了。
Request data | 无 |
Response data | view返回的每行JSON数据 |
Authentication required | 不需要 |
参数(可选):
Parameters | Type | Description |
---|---|---|
descending | boolean | 按照key值降序返回文档。 |
endkey | string | 查询终止于这个key。 Key必须是JSON文档内的一个value。 |
endkey_docid | string | 查询终止于这个文档ID。 |
full_set | boolean | 使用完整数据集 (仅供development view使用). |
group | boolean | 使用reduce函数把结果归并到一组或单个row中。 |
group_level | numeric | 指定归并的程度。 |
inclusive_end | boolean | 指定终止key是否被包含在结果中。 |
key | string | 返回匹配指定key值的文档。 Key必须是JSON文档内的一个value。 |
keys | array | 返回匹配序列内所有key值的文档。Key必须是JSON文档内的一个value。 本选项不包含排序功能。 |
limit | numeric | 限制返回的文档总数至指定数量。 |
on_error | string | 设置发生error时的行为。
支持的值:
|
reduce | boolean | 使用reduce函数。 |
skip | numeric | 跳过指定数量的记录后再开始返回结果。 |
stale | string | 允许使用过期的view结果。
支持的值:
|
startkey | string | 返回不小于指定key值的文档。 Key必须是JSON文档内的一个value。 |
startkey_docid | string | 返回从指定文档ID开始的文档。 |
句法规则
Curl 请求句法:
GET http://[localhost]:8092/[bucket-name]/_design/[ddoc-name]/_view/[view-name]
访问使用SASL密码保护的bucket需要在句法中添加额外内容:
GET http://[bucket-name]:[password]@[localhost]:8092/[bucket-name]/_design/[ddoc-name]/_view/[view-name]
比如说只输出十个结果:
GET http://[localhost]:8092/[bucket-name]/_design/[ddoc-name]/_view/[view-name]?limit=10
示例
Curl 请求示例:
在下面这个例子中,我们在名为test2的bucket中的名为_design/dev_ruth的design document下建立了一个名为ruthView的空的development view。
curl -u Administrator:password -X GET
http://10.5.2.117:8092/test2/_design/dev_ruth/_view/ruthView
回复
View返回的结果是JSON格式的,包含若干行view结果的信息和单独的view结果。
下面是上文中新建立的View返回空结果:
{
"rows": [],
"total_rows": 0
}
下例是聚合后的View结果:
{
"total_rows": 576,
"rows" : [
{"value" : 13000, "id" : "James", "key" : ["James", "Paris"] },
{"value" : 20000, "id" : "James", "key" : ["James", "Tokyo"] },
{"value" : 5000, "id" : "James", "key" : ["James", "Paris"] },
…
]
}
JSON 回复包括下列:
- total_rows
View包含的行数(结果数)。这个数字表示View查询得到的所有条目的数量,而不是返回结果集的条目数量。
- rows
包含返回的view数据的序列。数据包括查询的value,产生这个value的document ID,以及对应的匹配key。
当发生错误或有不正确的参数时,HTTP回复将会是包括基础error和细节reason两个field的JSON文档。比如说:
{
"error":"bad_request",
"reason":"invalid UTF-8 JSON: {{error,{1,\"lexical error: invalid char in json text.\\n\"}},\n\"Paris\"}"
}