ऐसा प्रतीत होता है कि अभी भी पर्सेंटाइल की गणना करने का कोई मूल तरीका नहीं है, लेकिन कुछ कुल ऑपरेटरों को मिलाकर आप समान परिणाम प्राप्त कर सकते हैं।
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)
नोट मैंने अपना मूल कोड पाइमोंगो में एक समस्या के लिए लिखा था जिसे पहले समूह में 3 फ़ील्ड पर समूहित करने की आवश्यकता थी, इसलिए यह किसी एकल फ़ील्ड के लिए आवश्यकता से अधिक जटिल हो सकता है। मैं इस प्रश्न के लिए विशिष्ट समाधान लिखूंगा लेकिन मुझे नहीं लगता कि पर्याप्त विशिष्ट जानकारी है।