如果在一个特定的ArangoDB服务器上定义了多个数据库,如何指定要运行AQL查询的数据库?
通过包含数据库名称(替换为下面的[DBNAME])的REST端点运行查询,即:
/_db/[DBNAME]/_api/cursor
似乎不起作用。错误消息显示“未知路径/_db/[数据库名]/_API/cursor”
这是我必须在查询本身中指定的内容吗?
另外:我尝试运行的查询是:
FOR col in COLLECTIONS() RETURN col.name
顺便说一句,我还没有找到一种通过REST API设置“当前”数据库的方法。而且,我正在使用fuerte从C++访问REST API。
2条答案
按热度按时间7cwmlq891#
***Tom Regner***在此值得称赞,因为他提出了一项调查,得出了这个答案。我在此发布我的发现,作为一个答案,以帮助其他可能遇到这个问题的人。
我不知道这是一个缺陷,缺点或只是一个API的警告,我不清楚...但...
要在a::arangodb::fuerte::Request的标头中注册和使用终结点中的'/_db/[DBNAME/'前缀(例如完整终结点'/_db/[DBNAME/_API/cursor'),仅调用以下命令是不够的(从arangodb 3.5.3和fuerte版本开始,在给出此答案时可用):
若要将数据库名称作为此类请求的一部分包括在内,必须另外调用以下命令:
如果不这样做,可能会导致关于**“未知路径”**的错误。
**注1:**只需设置数据库成员变量,即
不起作用。
注意2:没有前导“/_db/[DBNAME]/”前缀的操作似乎可以使用“当前”数据库正常工作。(至少对我来说,似乎停留在“_system”,因为据我所知,似乎没有端点可以通过HTTP REST API更改此数据库。)
zaqlnxep2#
这些文档现在并不是很有用,所以如果有人想找一个更完整的例子,请考虑下面的代码。