2017-05-02 44 views
0

我需要在我的ArangoDb中运行一个连续的任务,数据库本身已打开安全。当我发布到API端点的任务,该任务是记录,但然后在错误日志中我得到以下几点:如何授予任务执行查询?

JavaScript异常文件在3,75“未定义”:ArangoError 11: 禁止

不要惊讶它......但我怎么能从@arangodb模块实际登录用户?

以防万一,这里是我的任务的代码:

function() { 
     const db = require('@arangodb').db; 
     db._useDatabase("foo"); 
     db._query("LET now = DATE_NOW() FOR u IN wait FILTER now - u.time >= 300000 REMOVE {_key: u._key} IN wait"); 
    }  

回答

0

看一看this other question,指出,唯一的数据库福克斯可以访问是_SYSTEM。

我假设你的例子没有在'foo'中运行,而你试图跳转到另一个不允许的数据库。

如果您希望在其他数据库中拥有单一数据视图,则可以使用Foxx在每个数据库中发布REST端点,然后从外部应用程序调用所有这些REST端点,从多个数据库中提取数据。

+0

嗨,谢谢你的回答。正如我所说,我没有使用foxx,而且我也没有从数据库跳到另一个数据库。由于该任务发布在foo数据库上,我的查询将作用于该数据库的集合。我正在使用此功能[链接](https://docs.arangodb.com/3.1/Manual/Appendix/JavaScriptModules/Tasks.html) –

+0

啊,当你提到@arangodb模块时,我认为它是在Foxx中。如果你从Node.js运行这段代码,你看过由ArangoDB团队维护的[arangojs库](https://github.com/arangodb/arangojs)吗? –

+0

是的大卫,我在arangojs上运行我的节点应用程序。我正在尝试使用arangoDb的任务功能,链接在我上面的评论中。此功能提供了一个api端点,我可以发布一个JS函数,每x秒在Arango内部V8上运行。事实是,我无法找到一种方法来验证数据库的任务。感谢您的关注 –