Arangodb 如何从Foxx运行AQL

Arangodb 如何从Foxx运行AQL,arangodb,Arangodb,我需要运行一些Foxx存储库对象似乎无法处理的查询(也许我只是缺少了一些东西)。我想使用AQL,但我不知道如何从Foxx中调用它 例如: 时间戳集合: { user_id, time_stamp } SQL查询(我想模拟的): 但是这不允许我也做一个范围。原则上,您可以在控制器方法中使用普通查询。这将绕过Foxx存储库方法,但应该是可行的。例如: controller.around("/hallo", function (req, res, options, next) { var

我需要运行一些Foxx存储库对象似乎无法处理的查询(也许我只是缺少了一些东西)。我想使用AQL,但我不知道如何从Foxx中调用它

例如:

时间戳集合:

{ user_id, time_stamp }
SQL查询(我想模拟的):


但是这不允许我也做一个范围。

原则上,您可以在控制器方法中使用普通查询。这将绕过Foxx存储库方法,但应该是可行的。例如:

  controller.around("/hallo", function (req, res, options, next) {
    var count = true;
    var data = db._query("FOR u IN _users FILTER u.user == @name RETURN u",
                         { name: "root" }).toArray();

    res.json({ result: data });
  });
如果您想使用非Foxx集合,这是可以的。如果需要Foxx集合,则名称取决于装载点,在本例中,需要使用collectionName。比如说,你的收藏被称为“文本”,然后使用

  controller.around("/hallo", function (req, res, options, next) {
    var count = true;
    var data = db._query("FOR u IN @@texts RETURN u",
                         { '@texts': applicationContext.collectionName("texts") }).toArray();

    res.json({ result: data });
  });
  controller.around("/hallo", function (req, res, options, next) {
    var count = true;
    var data = db._query("FOR u IN _users FILTER u.user == @name RETURN u",
                         { name: "root" }).toArray();

    res.json({ result: data });
  });
  controller.around("/hallo", function (req, res, options, next) {
    var count = true;
    var data = db._query("FOR u IN @@texts RETURN u",
                         { '@texts': applicationContext.collectionName("texts") }).toArray();

    res.json({ result: data });
  });