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

配列の配列のMongoフィルター配列

    以下の集計を試すことができます

    基本的に、 $map 集計し、最後に $filterを使用します 最後のもので。

    db.collection.aggregate([
      { "$project": {
        "array1": {
          "$map": {
            "input": "$array1",
            "as": "a1",
            "in": {
              "array2": {
                "$map": {
                  "input": "$$a1.array2",
                  "as": "a2",
                  "in": {
                    "array3": {
                      "$filter": {
                        "input": "$$a2.array3",
                        "as": "a3",
                        "cond": { "$lte": ["$$a3.sampleId", 2] }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }}
    ])
    

    出力

    [
      {
        "array1": [
          {
            "array2": [
              {
                "array3": [
                  {
                    "sampleId": 1
                  },
                  {
                    "sampleId": 2
                  }
                ]
              },
              {
                "array3": []
              }
            ]
          },
          {
            "array2": [
              {
                "array3": [
                  {
                    "sampleId": 1
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
    



    1. 配列のないマングースのサブスキーマ

    2. 配列メンバーの集計条件の一致条件

    3. 正しい挿入DateTimeをc#からmongodbに

    4. ループバックエラー:認証が必要です