Мое веб-приложение должно отображать несколько отсортированных списков атрибутов документа в виде графика. Это hours
, cycles
и age
.
У меня есть запрос AQL, который красиво проходит по графику и получает все данные, необходимые моему приложению, за 2 мс. Я очень впечатлен! Но мне нужно отсортировать по каждому графику. В настоящее время запрос возвращает массив объектов json, которые содержат все три атрибута и идентификатор, для которого они применяются. Потрясающие. Запрос также очень легко сортируется по одному из атрибутов.
Моя проблема: мне нужно иметь отсортированный список из всех трех, и я бы предпочел не запрашивать базу данных три раза, поскольку все данные находятся в тех же документах, которые вернул мой обход.
Я хотел бы вернуть три отсортированных массива объектов json: один, содержащий hours
и идентификатор, один, содержащий cycles
и идентификатор, и один, содержащий age
и идентификатор. Таким образом, мои графики могут легко отображать все три графика без сортировки на стороне клиента.
Сами HTTP-запросы отнимают много времени, хотя база данных очень быстрая, поэтому я хотел бы получить все три сразу, поскольку сами данные малы.
Мой текущий запрос - это простой обход графа:
for v, e, p in outbound startNode graph 'myGraph'
filters & definitions...
sort v.hours desc
return {"hours": v.hours, "cycles": v.cycles, "age": v.age, "id": v.id}
Есть ли простой способ сказать Аранго, чтобы он вернул мне эту структуру?
{
[
{
"id": 47,
"hours": 123
},
{
"id": 23,
"hours": 105
}...
],
[
{
"id": 47,
"cycles": 18
},
{
"id": 23,
"cycles": 5
}...
],
[
{
"id": 47,
"age": 4.2
},
{
"id": 23,
"age": 0.9
}
]
}
Хотя обход выполняется быстро, я бы предпочел, чтобы мне не приходилось повторять обход графа три раза, если это возможно.