Vous pouvez utiliser le cadre d'agrégation pour regrouper par l'élément que vous souhaitez distinguer (le groupe le rend distinct). Donc, si vous souhaitez trier sur le score puis obtenir des clés distinctes, vous pouvez procéder comme suit :trier par score, grouper par clé et ajouter le score sous forme de tableaux d'éléments (déjà triés) :
db.test.aggregate([
{ $sort : { score : -1 } },
{ $group : {_id : "$key", scores : { $push : "$score" } } }
])
Cela se traduira par des clés distinctes ainsi qu'un tableau de scores qui sont les scores contenus dans les documents avec des clés en double. Je ne suis pas sûr que ce soit exactement ce que vous recherchez et je sais que c'est une vieille question, mais j'ai pensé que cela pourrait aider quelqu'un d'autre à l'examiner à l'avenir - comme une autre façon de le faire.