私はDbデータをフォローする必要があります:
{user : Tom, CORRECT: {q1, q3}, WRONG : {q2, q4} },
{user : jim, CORRECT: {q1}, WRONG : {q2, q3, q4} },
{user : Tom, CORRECT: {q6}, WRONG : {7} },
集計を使用して、ユーザーごとに各 CORRECT\WRONG の数を取得したいと思います。
{user : Tom, correctCount : 3, wrongCount : 3},
{user : jim, correctCount : 1, wrongCount : 3},
私が試したのはこれです:
Aggregation agg = newAggregation(
group("name").
addToSet(correct).as(correct).
addToSet(wrong).as(wrong).
addToSet(partial).as(partial)
);
しかし、ユーザーごとにデータの完全なリスト (つまり、q1、q2、q3...) を取得し、いつでもそのリストに対して size() を実行できますが、非効率的です。代わりにカウント値を取得するにはどうすればよいですか?
ありがとう