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

MongoDB集計$groupでパーセンテージを取得する

    percentageだと思います 値に%が含まれている場合は、文字列である必要があります

    まず、countする必要があります ドキュメントの数。

    var nums = db.collection.count();
    
    db.collection.aggregate(
        [
            { "$group": { "_id": {"type":  "$type"}, "count": { "$sum": 1 }}},    
            { "$project": { 
                "count": 1, 
                "percentage": { 
                    "$concat": [ { "$substr": [ { "$multiply": [ { "$divide": [ "$count", {"$literal": nums }] }, 100 ] }, 0,2 ] }, "", "%" ]}
                }
            }
        ]
    )
    

    結果

    { "_id" : { "type" : "short" }, "count" : 3, "percentage" : "60%" }
    { "_id" : { "type" : "big" }, "count" : 2, "percentage" : "40%" }
    


    1. Windows 32ビットでRedisを実行するにはどうすればよいですか?

    2. redis.serviceの開始に失敗しました:ユニットredis-server.serviceがマスクされています

    3. 初心者向けのHadoopMapReduceチュートリアル

    4. 2つのフィールドを比較する際のMongoDbクエリ条件