Anda dapat menggunakan kerangka kerja agregasi untuk mengelompokkan berdasarkan elemen yang ingin Anda bedakan (grup membuatnya berbeda). Jadi jika Anda ingin mengurutkan berdasarkan skor, dapatkan kunci yang berbeda, Anda dapat melakukan hal berikut - urutkan berdasarkan skor, kelompokkan berdasarkan kunci, dan tambahkan skor sebagai array elemen (sudah diurutkan):
db.test.aggregate([
{ $sort : { score : -1 } },
{ $group : {_id : "$key", scores : { $push : "$score" } } }
])
Ini akan menghasilkan kunci yang berbeda bersama dengan serangkaian skor yang merupakan skor yang terkandung dalam dokumen dengan kunci duplikat. Saya tidak yakin ini yang Anda cari dan saya tahu ini adalah pertanyaan lama, tetapi saya pikir ini mungkin membantu orang lain melihatnya di masa mendatang - sebagai cara alternatif untuk melakukan ini.