Можете да използвате рамката за агрегиране, за да групирате по елемента, който искате да бъде различен (групата го прави различен). Така че, ако искате да сортирате по резултат, тогава вземете отделни ключове, можете да направите следното - сортиране по резултат, групиране по ключ и добавяне на резултат като масиви от елементи (вече сортирани):
db.test.aggregate([
{ $sort : { score : -1 } },
{ $group : {_id : "$key", scores : { $push : "$score" } } }
])
Това ще доведе до отделни ключове заедно с масив от резултати, които са онези резултати, съдържащи се в документите с дублирани ключове. Не съм сигурен, че това е точно това, което търсите и знам, че това е стар въпрос, но си помислих, че това може да помогне на някой друг да го разгледа в бъдеще - като алтернативен начин за това.