Couchbase-如何使用C API查询视图 - libcouchbase

时间:2013-06-14 07:37:11

标签: c nosql couchbase

在couchbase官方文档中 - http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-view.html

有一个使用视图从couchbase检索数据的示例。

const char path[] = "myview?startkey=I,endkey=j";
libcouchbase_make_couch_request(instance, NULL, path, npath
                                NULL, 0, LIBCOUCHBASE_HTTP_METHOD_GET, 1);

我已经下载并安装了libcouchbase v 2.0.6

似乎库中没有函数libcouchbase_make_couch_request()或lcb_make_couch_request()。

我哪里错了?

如果在我们调用libcouchbase_make_couch_request()

的等价物之后有一个可用的提取数据的示例,它将会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

库本身带有联机帮助页,这是最实际的文档。索引页面为man 3 libcouchbase。您需要的页面是man 3 lcb_make_http_request。您还可以在repo本身https://github.com/couchbase/libcouchbase/blob/master/man/man3couchbase/lcb_make_http_request.3couchbase.txt

中找到asciidoc格式的文档

在1.x和2.x版本之间,我们已经更改了很多API,因此它主要不向后兼容。函数libcouchbase_make_couch_request只能在“开发人员预览”版本(例如测试版)中访问,最终它被命名为lcb_make_http_request,因为您可以使用相同的调用来创建设计文档,还可以执行管理任务,例如创建/刷新/删除桶等

以下是上面手册页中的代码示例:

lcb_http_request_t req;
lcb_http_cmd_t *cmd = calloc(1, sizeof(lcb_http_cmd_t));
cmd->version = 0;
cmd->v.v0.path = "_design/test/_view/all?limit=10";
cmd->v.v0.npath = strlen(item->v.v0.path);
cmd->v.v0.body = NULL;
cmd->v.v0.nbody = 0;
cmd->v.v0.method = LCB_HTTP_METHOD_GET;
cmd->v.v0.chunked = 1;
cmd->v.v0.content_type = "application/json";
lcb_error_t err = lcb_make_http_request(instance, NULL,
                                        LCB_HTTP_TYPE_VIEW,
                                        &cmd, &req);
if (err != LCB_SUCCESS) {
    ... failed to schedule request ...