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

子でのMongoDBの並べ替え

    次の集計でそれを行うことができます:

    db.collection.aggregate(
      [
        {
          $project: {
          group_id : { $cond : { if: { $ne: [ "$parentId", "" ] }, then: "$parentId", else: "$_id" }},
          count :1
          }
        },
        {
          $group: {
          _id : "$group_id",
          total_count : { $sum: "$count" }
          }
        },
        {
          $sort: {
          total_count : -1
          }
        }
      ]
    );
    

    最初に、parentId値に応じて_idまたはparentIdで埋められる追加のフィールド「group_id」を投影します。group_idフィールドは、グループ化して合計数を作成するために使用されます。最後のステップは、total_countでグループ化することです。

    mongoDb 3.4を使用している場合は、$graphLookup を確認できます。 しかし今のところ、3.4より前の集計を残しておきます;-)




    1. メモリが不足した場合、Redisは何をしますか?

    2. @CompoundIndexがSpringDataMongoDBで機能しない

    3. MongoDBデータベース、SELECT column1、column2FROMtblと同等

    4. テキスト検索で結果がないMongoDBPHP