使用 HTTP 接口列出 ArangoDB 中数据库的可用集合?

Posted

技术标签:

【中文标题】使用 HTTP 接口列出 ArangoDB 中数据库的可用集合?【英文标题】:List available collections for database in ArangoDB using HTTP interface? 【发布时间】:2022-01-02 20:52:52 【问题描述】:

我正在尝试使用 ArangoDB 的 HTTP 接口来转储属于特定数据库的所有集合。

我可以使用以下命令查看所有可用的数据库:

curl http://localhost:8529/_api/database

但是,一旦我找到一个数据库名称(例如,“test”),我就无法转储属于该数据库的集合。最终,我想转储此数据库的集合,然后转储所选集合中的所有结果。

我已遵循此处提供的文档:https://www.arangodb.com/docs/stable/http/general.html,但是我仍然无法找到此请求的相关文档。

【问题讨论】:

【参考方案1】:

您可以使用

获取所有集合的列表
curl http://localhost:8529/_db/DBNAME/_api/collection

正如文档的这一部分所暗示的那样:https://www.arangodb.com/docs/stable/http/collection.html#address-of-a-collection

界面的其余部分相应地工作,例如

curl http://localhost:8529/_db/DBNAME/_api/collection/COLLNAME

获取有关单个集合的信息(已包含在第一次调用的输出中)。

您只需在 Web 界面中单击两次即可找到完整的 swagger 文档:

【讨论】:

感谢 Tom,既然我有了集合名称,我将如何检索该集合中文档的 ID? /_api/collection/collection-name/properties 中的“lastValue”字段显示最后一个文档 ID,但我想查看所有这些。 在 arangodb 网络界面中,左侧导航栏中的每个数据库都有一个“支持”链接 - 您可以在顶部栏链接“休息”下找到 HTTP-Api 的招摇文档-API' - 查看PUT ​/_api​/document​/collection#get 端点,或者更多控制,AQL-Query/Cursor API。 我建议将POST /_db/<database>/_api/cursor 端点与例如以下有效负载一起使用:"query":"FOR doc IN @@coll RETURN doc._id", "bindVars":"@coll":"<collection>", "options":"stream":true。这是对集合的基本迭代,您可以返回文档 ID、键或任何您需要的东西。使用集合绑定变量可让您重用此请求,您需要更改的只是绑定参数中的集合名称。启用查询流选项以在您请求后续结果批次时延迟计算结果。

以上是关于使用 HTTP 接口列出 ArangoDB 中数据库的可用集合?的主要内容,如果未能解决你的问题,请参考以下文章

ArangoDB Restful API

ArangoDB集合操作

ArangoDB集合操作

ArangoDB图数据库--总参

开源NoSQL数据库:ArangoDB 入门指南

使用 arangodb 连接到多个数据库