複数の基準を使用した集計と、カウントキーに基づく合計の一致

RameshKumar

別のコレクションのオブジェクトの配列に存在する要素の数を取得しようとしていました。例:

コレクションA:

{
   _id:1,
   name:"Sample1"
}
{
  _id:2,
  name:"Sample 2"
}
{
  _id:3,
  "name":"Sample 3"
}
{
  _id:4,
  "name":"Sample 4"
}

コレクションB:

{
   _id:11,
   items:[ {_id:1, name:"sample1",size:1},{_id:3, name:"sample 3",size:5}]
}
{
   _id:12,
   items:[ {_id:1, name:"sample1",size:2},{_id:3, name:"sample 3",size:6}]
}
{
   _id:13,
   items:[ {_id:2, name:"sample2", size:5},{_id:1, name:"sample 1",size:8}],
is_delete:true
}
{
   _id:14,
   items:[ {_id:1, name:"sample1",size:3},{_id:3, name:"sample 3",size:1}]
}

注:アイテムの_idは文字列です。

期待される出力:

{
   _id:1,
   name:"Sample1",
  count:6
}
{
  _id:2,
  name:"Sample 2",
  count:0
}
{
  _id:3,
  "name":"Sample 3",
  "count":12
}
{
  _id:4,
  "name":"Sample 4",
  "count":0
}

期待される出力を得るためにmongoクエリを書くのを手伝ってください。

承知しました

コレクションが2つあるので、使用する必要があります

  • $lookup2つのコレクションに参加します。ここでは、相関のないサブクエリを使用しました
  • 凝集がで実行されるcolAコレクションが、内部lookuppipeline私たちは上の集約を行いますcolB$unwindの構造を解除するのに役立ちますitems$match不要なデータを排除するのに役立ちます(一致段階には$ exprが必要です)。
  • 結合が成功したら、を使用して配列をカウントする必要があります $size
  • $reduce の配列値を合計するのに役立ちます size

mongoスクリプトを以下に示します。

db.colA.aggregate([
  {
    $lookup: {
      from: "colB",
      let: {
        bid: "$_id"
      },
      pipeline: [
        {
          $match: {
            $or: [
              {
                is_delete: false
              },
              {
                is_delete: {
                  "$exists": false
                }
              }
            ]
          }
        },
        {
          $unwind: "$items"
        },
        {
          $match: {
            $expr: {
              $eq: [
                "$items._id",
                "$$bid"
              ]
            }
          }
        },
        
      ],
      as: "data"
    }
  },
  {
    $project: {
      count: {
        $reduce: {
          input: "$data",
          initialValue: 0,
          in: {
            $add: [
              "$$value",
              "$$this.items.size"
            ]
          }
        }
      }
    }
  }
])

働くモンゴの遊び場

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

一致する値に基づく別のテーブルからのSnowflakeSQLのカウントと合計

分類Dev

複数のインとアウトの基準に基づいて時間を合計します

分類Dev

Mongo集計:配列フィールドの一致条件に基づいてドキュメントをカウントします

分類Dev

パンダの複数の条件に基づくグルービーとカウントの合計

分類Dev

複数の行+ヘッダー基準に基づく合計

分類Dev

行をループし、Rの複数の基準に一致する行数をカウントします

分類Dev

行と列の基準に一致する複数のセルを合計しますか?

分類Dev

複数の基準に一致する行をカウントする方法

分類Dev

MongoDBの日付フィールドに基づくカウントと集計

分類Dev

複数の基準にわたるインデックス一致の合計

分類Dev

複数の基準に基づく合計

分類Dev

MongoTemplate:特定の基準に一致するドキュメントのキーの合計値

分類Dev

Excel:複数の(日付)基準とIfステートメントを使用して数式を集計します

分類Dev

複数の列の一致に基づいて列を合計します(一部)

分類Dev

結果を計算し、1つの数式の基準に基づいてカウントします

分類Dev

複数のクエリフィールドに基づくMongoDB集計カウント-(複数のフィールドカウント)

分類Dev

個々の列に基づいて行をカウントし、複数の列の合計

分類Dev

テーブル間で一意のID値を照合し、複数の基準に基づいてカウントするExcelの数式

分類Dev

配列コンポーネントの合計に基づくMongoの一致

分類Dev

2番目のコレクションの一致に基づく集計

分類Dev

マトリックス条件と複数の基準に基づくExcelの合計

分類Dev

複数の列で基準を検索し、一致した各値のオフセットを合計します

分類Dev

複数の列で基準を検索し、一致した各値のオフセットを合計します

分類Dev

Excelの基準に基づく合計

分類Dev

スペース区切りリストに一致する基準に基づく合計

分類Dev

集計?別のテーブルの行のリスト全体に基づく列の値。列名は2番目のテーブルと一致します。

分類Dev

一致に基づくカウントではなく、完全にソートされたドキュメントを返すmongodbの$ facet

分類Dev

SQL Serverの基準に基づいて、単一の列を複数の列に合計します

分類Dev

Tableau:ブール属性に基づく集計カウントの取得

Related 関連記事

  1. 1

    一致する値に基づく別のテーブルからのSnowflakeSQLのカウントと合計

  2. 2

    複数のインとアウトの基準に基づいて時間を合計します

  3. 3

    Mongo集計:配列フィールドの一致条件に基づいてドキュメントをカウントします

  4. 4

    パンダの複数の条件に基づくグルービーとカウントの合計

  5. 5

    複数の行+ヘッダー基準に基づく合計

  6. 6

    行をループし、Rの複数の基準に一致する行数をカウントします

  7. 7

    行と列の基準に一致する複数のセルを合計しますか?

  8. 8

    複数の基準に一致する行をカウントする方法

  9. 9

    MongoDBの日付フィールドに基づくカウントと集計

  10. 10

    複数の基準にわたるインデックス一致の合計

  11. 11

    複数の基準に基づく合計

  12. 12

    MongoTemplate:特定の基準に一致するドキュメントのキーの合計値

  13. 13

    Excel:複数の(日付)基準とIfステートメントを使用して数式を集計します

  14. 14

    複数の列の一致に基づいて列を合計します(一部)

  15. 15

    結果を計算し、1つの数式の基準に基づいてカウントします

  16. 16

    複数のクエリフィールドに基づくMongoDB集計カウント-(複数のフィールドカウント)

  17. 17

    個々の列に基づいて行をカウントし、複数の列の合計

  18. 18

    テーブル間で一意のID値を照合し、複数の基準に基づいてカウントするExcelの数式

  19. 19

    配列コンポーネントの合計に基づくMongoの一致

  20. 20

    2番目のコレクションの一致に基づく集計

  21. 21

    マトリックス条件と複数の基準に基づくExcelの合計

  22. 22

    複数の列で基準を検索し、一致した各値のオフセットを合計します

  23. 23

    複数の列で基準を検索し、一致した各値のオフセットを合計します

  24. 24

    Excelの基準に基づく合計

  25. 25

    スペース区切りリストに一致する基準に基づく合計

  26. 26

    集計?別のテーブルの行のリスト全体に基づく列の値。列名は2番目のテーブルと一致します。

  27. 27

    一致に基づくカウントではなく、完全にソートされたドキュメントを返すmongodbの$ facet

  28. 28

    SQL Serverの基準に基づいて、単一の列を複数の列に合計します

  29. 29

    Tableau:ブール属性に基づく集計カウントの取得

ホットタグ

アーカイブ