sql >> データベース >  >> NoSQL >> MongoDB

パーセンタイルを計算する方法は?

    パーセンタイルを計算するネイティブな方法はまだないようですが、いくつかの集計演算子を組み合わせることで、同じ結果を得ることができます。

    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つのフィールドにグループ化する必要がある問題のために、元のコードをpymongoで記述したため、単一のフィールドに必要なコードよりも複雑になる可能性があることに注意してください。この質問に固有の解決策を書きますが、具体的な情報が十分ではないと思います。



    1. Redisタイプクライアント

    2. MongoDBシェルとサーバーが一致しません

    3. 要素の正規表現配列を使用したMongoDBクエリ$in

    4. SQLで値に少なくとも1桁の数字が含まれているかどうかを検出する