使用 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 中数据库的可用集合?的主要内容,如果未能解决你的问题,请参考以下文章