あなたは単にcontributor_name
によってグループとは、それぞれの値がデータセットで発生頻度を効率的に計算するために、特別なCOLLECT構文バリアントWITH COUNT INTO ...
を使用することができます。
FOR doc IN coll
COLLECT name = doc.contributor_name WITH COUNT INTO count
RETURN { name, count }
結果は次のようになります。
[
{ "name": "Rizano", "count": 5 },
{ "name": "Felipe", "count": 8 },
...
]
このような結果をマージすることができます。
[
{
"Rizano": 5,
"Felipe": 8
}
...
]
問合せ:
RETURN MERGE(
FOR doc IN coll
COLLECT name = doc.contributor_name WITH COUNT INTO count
RETURN { [name]: count }
)
また、ソートすることにより、例えば、最も発生値に結果をカウントし、制限する可能性がありますこの(のみトップコントリビューター)のように:この特定のクエリのパフォーマンスに差があってはならないが、
FOR doc IN coll
COLLECT name = doc.contributor_name WITH COUNT INTO count
SORT count DESC
LIMIT 1
RETURN { name, count }
COLLECT AGGREGATEは、もあります:
FOR doc IN coll
COLLECT name = doc.contributor_name AGGREGATE count = LENGTH(1)
SORT count DESC
LIMIT 1
RETURN { name, count }
LENGTH
に渡された値が本当に重要ではありません、私たちが望むのは、それが1の長さを返すということです(したがって、与えられたコントリビュータのカウンタを1増加させます)。