Поскольку все совпадающие документы уже агрегированы, вы можете выполнить простую операцию SLICE () , чтобы взять первые 10 элементов из каждой группы:
RETURN {
groupId,
tasks: SLICE(groupByType, 0, 10)[*].d, // first 10
tasksNo: LENGTH(groupByType[*].d) // full count
}
Другой синтаксис c option - использовать встроенный лимит :
tasks: groupByType[* LIMIT 10].d,
Самый подробный вариант с использованием стандартного LIMIT
- использовать подзапрос:
tasks: (FOR g IN groupByType LIMIT 5 RETURN g.d),
Подзапрос имеет свою собственную область действия, а LIMIT
ограничивается этой областью.