Когда мне следует использовать AQL?

В контексте ArangoDB существуют разные оболочки базы данных для запроса данных:

Хотя я понимаю использование JavaScript и MRuby, я не уверен, зачем мне учиться и где использовать AQL. Есть информация по этому поводу? Есть ли идея отправить AQL напрямую на сервер базы данных?


person poseid    schedule 18.02.2013    source источник


Ответы (1)


AQL - это язык запросов ArangoDB. У него есть много способов запрашивать, фильтровать, сортировать, ограничивать и изменять результат, который будет возвращен. Следует отметить, что AQL только читает данные.

(Обновление: этот ответ был нацелен на старую версию ArangoDB. Начиная с версии 2.2, функции были расширены, и изменение данных в базе данных также возможно с помощью AQL. Для получения дополнительной информации посетите ссылку на документацию в конце ответа.)

Вы не можете хранить данные в базе данных с помощью AQL.

В отличие от AQL, Javascript или MRuby могут читать и сохранять данные в базе данных. Однако их возможности запросов очень просты и ограничены по сравнению с возможностями, которые открывает AQL.

Однако можно отправлять запросы AQL из javascript. В оболочке arangosh Javascript вы должны выполнить запрос AQL, подобный этому:

    arangosh> db._query('FOR user IN example FILTER user.age > 30 RETURN user').toArray()
[
  { 
    _id : "4538791/6308263", 
    _rev : "6308263", 
    age : 31, 
    name : "Musterfrau"
   }
]

Дополнительную информацию об AQL можно найти здесь: http://www.arangodb.org/manuals/current/Aql.html

person thesilentman    schedule 18.02.2013
comment
Спасибо! В документации написано: вы можете запускать AQL-запросы из своего приложения через HTTP REST API ... так что я также мог запустить AQL, например, Завиток? - person poseid; 18.02.2013
comment
Точно. Фактически, все языковые драйверы используют HTTP REST API. REST API - это интерфейс ArangoBD к миру. Если, например, вы программируете на языке, для которого еще нет драйвера, вы можете начать проект, написав свой собственный драйвер. Это все HTTP. - person thesilentman; 18.02.2013
comment
Не уверен в состоянии дел на февраль, но с помощью AQL вы определенно можете изменять и сохранять данные в базе данных (пример: arangodb.com/tutorial-node-js/#aql-update). Неважно, как запущен AQL, у него всегда одни и те же возможности. - person mohamnag; 07.12.2015
comment
В феврале ›2013‹ все было по-другому ...;) Тем не менее, я обновлю ответ, чтобы учесть новые возможности ... - person thesilentman; 08.12.2015