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

Mongodb:グループ後の集計でレコード数を使用する

    以下の集計クエリを使用できます。

    最初の$group $pushの間に合計数を計算します 概念フィールドを配列フィールドに。 $$ROOT ドキュメント全体にアクセスするには

    次の$groupで記事の総数を保持します 。

    残りはすべてあなたがしたようにとどまります。

    db.articles.aggregate([
      {"$group":{
        "_id":null,
        "totalArticles":{"$sum":1},
        "concepts":{"$push":"$$ROOT.concepts"}
      }},
      {"$unwind":"$concepts"},
      {"$group":{
        "_id":"$concepts.text",
        "totalArticles":{"$first":"$totalArticles"},
        "count":{"$sum":1},
        "average":{"$avg":"$concepts.relevance"}
      }},
      {"$project":{
          "count": "$count",
          "percent": {
            "$divide": [ "$count", "$totalArticles" ]
          }
        }
      },
      {"$sort": {"count": -1}}
    ])
    

    $facets また、2つの別々のパイプラインで2つのクエリを実行した後、マージして残りのステージを続行できるオプションです。




    1. SpringDataMongoDBの集計合計

    2. MongoDB-ファイルサイズは巨大で大きくなっています

    3. MongoDB $ toUpper

    4. ExpressおよびMongoDBでreq.query.nameをcollection.findに取得しないでください