使用ArangoDB进行动态查询

时间:2016-09-19 07:06:26

标签: arangodb foxx arangojs

我希望为ArangoDB图形数据库编写动态查询,并且想知道是否有最佳实践或标准方法来实现它。

通过“动态查询”,我的意思是用户可以构建一个然后在数据集上执行的查询。

ArangoDB可以支持的方法包括:

  • 通过手动注入bindvars动态生成AQL查询
  • 编写Foxx函数以提供支持的查询,并让另一个Foxx函数将这些函数绑定在一起以构建响应。
  • 编写一个工作流,将数据提取到临时集合中,然后调用Foxx函数对数据进行过滤/排序,使其达到预期的结果。

查询将是非常开放的,有人会(例如):

  • 查询人口超过10,000,000的所有国家
  • 按平方公里土地划分国家
  • 选择土地覆盖率排名前10位的国家
  • 选择每个国家/地区使用的主要语言
  • 计算每种语言的出现次数。

仅查询该查询是直接执行,但如果用户能够[x]检查或从一系列支持的查询选项中进行选择,请按照自己定义的方式对它们进行排序,并接收输出,它会多一点参与。

是否有一些支持或推荐的方法来执行此操作?

我目前的方法是编写每个部分上传递的AQL块,可能是LET Q1 =(....),LET Q2 =(...)格式,然后最后在底部查询具有处理查询以生成响应的通用方法。

但我有一种感觉,聪明地使用Foxx函数也可以帮助到这里,Foxx-Query-Q1和Foxx-Query-Q2编码支持每种查询类型,然后聚合Foxx应用程序调用正确的查询建立正确回应的正确命令。

如果有人看到了这样做的最佳方法,那么获得一些提示/建议会很棒。

谢谢!

0 个答案:

没有答案