Если вы хотите перечислить набор результатов и сохранить эти числа в атрибуте order
, то это возможно с помощью следующего запроса AQL:
LET sorted_ids = (
FOR user IN Users
SORT user.age DESC
RETURN user._key
)
FOR i IN 0..LENGTH(sorted_ids)-1
UPDATE sorted_ids[i] WITH { order: i+1 } IN Users
RETURN NEW
Подзапрос используется для сортировки пользователей по возрасту и возврата массива ключей документов. Затем цикл по числовому диапазону от первого до последнего индекса этого массива используется для итерации по его элементам, что дает желаемое значение порядка (минус 1) в виде переменной i
. Текущий элемент массива - это ключ документа, который используется для обновления пользовательского документа атрибутом заказа.
Вышеупомянутый запрос может быть полезен для одноразового вычисления атрибута заказа. Если ваши данные сильно изменятся, то они быстро устареют, и вы, возможно, захотите перенести их на клиентскую сторону.
Связанное обсуждение см. AQL: Счетчик / перечислитель