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

MongoDBは、クエリに一致するドキュメントのtrue値とfalse値の総数をカウントします

    集約フレームワーク あなたの答えは:

    db.collection.aggregate([
        { "$match": { "pollId": "hr4946-113" } },
        { "$group": {
            "_id": "$vote",
            "count": { "$sum": 1 }
        }}
    ])
    

    基本的に、 $group 演算子は、「キー」となどの「グループ化演算子」によってすべてのデータを収集します $sum 値に取り組みます。この場合、1を追加するだけです カウントを示すために境界上にあります。

    あなたに与えるもの:

    { "_id": true, "count": 1 }, 
    

    $ cond フィールド値を条件付きで評価する演算子:

    db.collection.aggregate([
        { "$match": { "pollId": "hr4946-113" } },
        { "$group": {
            "_id": "$vote",
            "count": { "$sum": 1 }
        }},
        { "$group": {
            "_id": null,
            "yesCount": {
                "$sum": {
                    "$cond": [ "_id", 1, 0 ]
                }
            },
            "noCount": {
                "$sum": {
                    "$cond": [ "_id", 0, 1 ]
                }
            }
        }},
        { "$project": { "_id": 0 } }
    ])
    

    そしてその結果:

    { "yesCount": 1, "noCount": 0 }
    



    1. MongoDBで生成された_idをシークレットデータとして使用する(例:OAuthトークン)

    2. java.lang.IncompatibleClassChangeError:クラスMongoの実装

    3. Spring ReactiveMongoRepositoryにMonoのsaveメソッドがないのはなぜですか?

    4. Mongoidにbelong_toアソシエーションを持つ埋め込みドキュメント