sql >> Database >  >> NoSQL >> MongoDB

Hoe het percentiel te berekenen?

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.



  1. MongoDB-groep en waarden aftrekken van verschillende documenten

  2. Mongoose-update zonder terugbellen

  3. Hoe query-uitvoer op te slaan in temp db?

  4. Aan de slag met niet-relationele databases met Mongodb