Tampaknya masih belum ada cara asli untuk menghitung persentil, tetapi dengan menggabungkan beberapa operator agregat, Anda bisa mendapatkan hasil yang sama.
db.items.aggregate([
{'$group': {
'_id': {
'league': '$league',
'base': '$base',
'type': '$type'
},
'value': {'$push': '$chaosequiv'}
}},
{'$unwind': '$value'},
{'$sort': {'value': 1}},
{'$group': {'_id': '$_id', 'value': {'$push': '$value'}}},
{'$project': {
'_id': 1,
'value': {'$arrayElemAt': ['$value', {'$floor': {'$multiply': [0.25, {'$size': '$value'}]}}]}
}}
], allowDiskUse=True)
Catatan Saya menulis kode asli saya di pymongo untuk masalah yang perlu dikelompokkan pada 3 bidang di grup pertama jadi ini mungkin lebih kompleks daripada yang diperlukan untuk satu bidang. Saya akan menulis solusi khusus untuk pertanyaan ini, tetapi saya rasa tidak ada informasi spesifik yang cukup.