【问题标题】:How to run a sequnce of AQL queries in arangodb如何在 arangodb 中运行一系列 SQL 查询
【发布时间】:2019-01-29 17:48:36
【问题描述】:

我是一个新手,正在尝试使用 ArangoDB。我想运行一批相互依赖的 AQL 查询。我想做与 PL-SQL 相同的事情。我尝试通过 FOXX 在一个帖子/获取请求中合并两个或多个查询,但没有成功。有人可以建议我更好的方法吗?或者这个教程?

【问题讨论】:

  • 这一切都取决于您的客户端访问数据库的方式。例如。我们正在使用 Java 和 java 驱动程序来访问 arangodb。然后,您可以在编写 AQL 查询时使用事务调用或将其堆叠。

标签: arangodb foxx arangodb-foxx


【解决方案1】:

这完全取决于访问数据库的客户端是什么。

例如我们正在使用 Java 和 java 驱动程序来访问 ArangoDB。然后可以进行事务调用或带有后续 AQL 查询的 AQL 查询。

问题是,如果 AQL 查询相互依赖,为什么要在一个请求中运行它们?您将如何获得每一项的结果?

看看 Gremlin 语言(它是一种图形语言),你会发现它使用 WebSockets 并且一个查询的结果通过 WS 以二进制方式返回......因此批处理这样的查询没有任何意义. (请注意,ArangoDB 也有 Gremlin API 的提供程序)。

我希望,如果您通过 HTTP 访问 ArangoDB。现在您正在尝试保存 http 请求。如果是这种情况,我建议您编写自己的 API 层,该层将公开接口,您可以在其中批处理请求。然而,API 层会对 Arango 进行 2 次调用(例如并行),获取结果并以某种方式将它们合并到最终输出。

【讨论】:

  • “Java 和访问 ArangoDB 的 Java 驱动程序”回答了我的问题!我可以像 PL-SQL 一样使用它并控制数据。谢谢!通过相互依赖,我的意思是像一些精心安排的查询序列。例如:为了创建一个用户,我需要首先插入用户详细信息,并插入一个插入来映射他拥有的汽车。所以在这里我需要插入用户,然后将一些汽车 ID 映射到该用户。
  • 嗯,尝试寻找交易。当我需要删除顶点+边的层次结构时,我使用事务,并且我只想删除所有元素,前提是可以删除所有元素(例如,因为并发访问等)。因此,如果您只想在他拥有的汽车也成功插入的情况下插入用户,我会将其作为事务传递。 github.com/arangodb/arangodb-java-driver/blob/master/docs/… 或者这太复杂了,只用 Java 处理它也可以(用于创建我不使用事务)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 2014-12-09
  • 2016-12-18
  • 2014-01-22
相关资源
最近更新 更多