【发布时间】:2020-02-23 16:33:04
【问题描述】:
如果在特定的 ArangoDB 服务器上定义了多个数据库,我如何指定要运行 AQL 查询的数据库?
通过包含数据库名称(替换为下面的 [DBNAME])的 REST 端点运行查询,即:
/_db/[DBNAME]/_api/cursor
似乎不起作用。错误消息显示“未知路径 /_db/[DBNAME]/_api/cursor”
这是我必须在查询本身中指定的内容吗?
另外:我尝试运行的查询是:
FOR col in COLLECTIONS() RETURN col.name
Fwiw,我还没有找到通过 REST API 设置“当前”数据库的方法。另外,我正在使用 fuerte 从 C++ 访问 REST API。
【问题讨论】:
-
数据库似乎是 RequestHeader 的一部分(参见 include/fuerte/message.h 第 96 行 (github.com/arangodb/fuerte/blob/…));如果你的问题仍然存在,我会说看看标题,修改你的代码并发布它的相关部分
-
您的问题的答案是:您没有将数据库指定为 AQL 查询的一部分。
-
感谢汤姆的建议。我尝试设置 request->header.database 值,但没有帮助。我似乎完全无法改变 arangodb 的“当前”数据库概念(由端点 /_api/database/current 返回),我似乎也无法让 /_db/[DBNAME]/ 前缀工作。当前数据库似乎停留在“_system”,至少通过 REST api 访问通过 fuerte。仍在寻找有关如何克服这一点的建议。我会考虑重新表述这个问题,提供一些简单的代码并再次提问。
-
很高兴你找到了方法;它是一个处于起步阶段的低级库,看起来,这就是它当时的样子。亲切的问候
标签: c++ database arangodb aql fuerte