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

MongoDBコレクションのフィールドをカウントする

    コレクション全体を繰り返し処理し、そこにあるフィールドの総数を見つけます

    これで、集計演算子$ objectToArray(SERVER-23310)を使用して、キーを値に変換し、それらをカウントできます。この演算子は、MongoDB v3.4.4 +

    で使用できます。

    例:

    db.collection.aggregate([
             {"$project":{"numFields":{"$size":{"$objectToArray":"$$ROOT"}}}}, 
             {"$group":{"_id":null, "fields":{"$sum":"$numFields"}, "docs":{"$sum":1}}}, 
             {"$project":{"total":{"$subtract":["$fields", "$docs"]}, _id:0}}
    ])
    

    第1段階の$project すべてのキーを配列に変換してフィールドをカウントすることです。第2段階の$group コレクション内のキー/フィールドの数と、処理されたドキュメントの数を合計することです。第3段階の$project は、フィールドの総数からドキュメントの総数を差し引いたものです(_idをカウントしたくないため) )。

    $ avgを簡単に追加して、最終段階の平均を数えることができます。



    1. 日時の月、日、年...にMongodbをクエリします

    2. Redisカスタムコマンド

    3. タイムゾーンを考慮せずにMongoDBに日付を保存する

    4. MongoDB GROUP BYでHAVINGを実行する正しい方法は何ですか?