Foxx可以调用在ArangoDb中定义的查询吗?

时间:2019-07-08 08:51:00

标签: aql foxx

我无法确定是否可以在Foxx脚本中调用在ArangoDb Web UI上设置的AQL查询-就像RDMS的服务可以调用存储过程一样。

到目前为止,我所看到的所有示例都显示了嵌入到Foxx服务JavaScript中的AQL。

'values' => [
        'params.fee_status' => [
            'pay' => 'default'
        ],
    ],

我希望ArangoDb上定义的查询能够运行并从Foxx服务传递参数值。但是_query方法似乎只接受查询字符串。

1 个答案:

答案 0 :(得分:0)

查询存储为用户的属性,因此可以通过users-API:

var _ = require("lodash"); // helper to group the queries
var users = require('@arangodb/users'); 
var myQueries = _.groupBy(users.document(users.currentUser())['extra']['queries'], 'name');

const result = db._query(myQueries['name of query defined in Db'], ...);

lodash默认情况下可用,无需安装。

这在任何地方都没有明确记录-我查看了查询编辑器的网络流量,以在用户的​​“额外/查询”下查找查询;而不是我搜索了js用户API,并找到了有关“用户管理”的文章。我要说的是,缺乏文档证明是明显的“空洞的买主”,它可能会更改,恕不另行通知;但这应该可以帮助您。

另外,想一想,我仅在arangosh中测试了此内容,而不是foxx应用程序-也许该用户模块在那里不可用。如果可行,您可能必须用用户名字符串替换users.currentUser()调用。

鉴于此方法可轻松破坏您的应用程序,因此我不建议在研发和/或原型制作之外使用此方法(如果可行...)