次のような構造のドキュメントがあります。
{
'_id' => 'Star Wars',
'count' => 1234,
'spelling' => [ ( 'Star wars' => 10, 'Star Wars' => 15, 'sTaR WaRs' => 5) ]
}
上位 N 個のドキュメント (降順) を取得したいのですが、ドキュメントごとにスペルが 1 つだけです (値が最も高いもの)。集約フレームワークでこれを行う方法はありますか?
上位 10 件の結果を簡単に取得できます ($sort と $limit を使用)。しかし、それぞれに 1 つのスペルだけを取得するにはどうすればよいでしょうか。
たとえば、次の 3 つのレコードがあるとします。
{
'_id' => 'star_wars',
'count' => 1234,
'spelling' => [ ( 'Star wars' => 10, 'Star Wars' => 15, 'sTaR WaRs' => 5) ]
}
{
'_id' => 'willow',
'count' => 2211,
'spelling' => [ ( 'willow' => 300, 'Willow' => 550) ]
}
{
'_id' => 'indiana_jones',
'count' => 12,
'spelling' => [ ( 'indiana Jones' => 10, 'Indiana Jones' => 25, 'indiana jones' => 5) ]
}
上位 2 つの結果を求めると、次の結果が得られます。
{
'_id' => 'willow',
'count' => 2211,
'spelling' => 'Willow'
}
{
'_id' => 'star_wars',
'count' => 1234,
'spelling' => 'Star Wars'
}
(またはこの趣旨の何か)
ありがとう!