2014-09-06 57 views
3

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

例子:

时间戳收藏:

{ user_id, time_stamp } 

SQL查询(我想什么效仿):

SELECT * FROM timestamps WHERE user_id = 1024 AND time_stamp < 123456789 

我可以这样做:

timestamps.byExample({user_id:1024}) 

但是这并不能让我做一个范围。

回答

2

原则上,您可以在控制器方法中使用普通查询。这将绕过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 }); 
    });