2014-09-06 3 views
3

Мне нужно запустить некоторые запросы, которые объект Foxx Repository не может обрабатывать (возможно, я просто что-то пропустил). Я бы хотел использовать AQL, но я не знаю, как назвать это из Foxx.Как запустить AQL из Foxx

Пример:

метки времени Коллекция:

{ user_id, time_stamp } 

SQL Query (То, что я хотел бы подражать):

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 }); 
    }); 

Это нормально, если вы хотите использовать коллекции non-Foxx. Если вам нужна коллекция Foxx, имя зависит от точки монтирования, в этом случае вам нужно использовать имя коллекции. Скажем, ваша коллекция называется «тексты», затем используйте

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 }); 
    });