Couchbase——查询信息

本文介绍如何通过HTTP GET请求访问Couchbase集群中的View信息。详细解释了如何指定bucket、design document及view名称来获取JSON格式的数据,同时提供了使用各种参数定制查询结果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取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 dataview返回的每行JSON数据
Authentication required不需要

参数(可选):

Table 1. Views parameters
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时的行为。
支持的值:
  • continue : 即使发生错误也继续执行view,并把错误加入数据流返回。
  • stop : 发生错误立刻停止,且不再返回更多的view信息。
reduce boolean 使用reduce函数。
skip numeric 跳过指定数量的记录后再开始返回结果。
stale string 允许使用过期的view结果。
支持的值:
  • false : 每次查询前强制更新view得到最新结果。
  • ok : 查询直接返回当前储存的view结果。
  • update_after : 查询返回当前存储的view结果,并在之后更新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]
Note: 更多额外参数可以用来定制访问返回的信息,包括但不限于限制结果数量,排序和聚集。

比如说只输出十个结果:

GET http://[localhost]:8092/[bucket-name]/_design/[ddoc-name]/_view/[view-name]?limit=10
Important:URL的组织方式符合HTTP规范。第一个参数用“?”与基础的URL区分,后续参数使用“&”与其他参数区分。特殊符号按照HTTP规范进行转义。

示例

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\"}"
}
Note:根据client SDK的不同,错误返回的具体行为会有所不同,不过一个非法的查询一定会出发一个错误或异常。

相关链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值