Er lijkt nog steeds geen native manier te zijn om percentielen te berekenen, maar door een paar aggregatieoperatoren te combineren, kunt u hetzelfde resultaat krijgen.
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)
Opmerking Ik heb mijn originele code in pymongo geschreven voor een probleem dat moest worden gegroepeerd op 3 velden in de eerste groep, dus dit kan ingewikkelder zijn dan nodig is voor een enkel veld. Ik zou een specifieke oplossing voor deze vraag willen schrijven, maar ik denk niet dat er voldoende specifieke informatie is.