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

ネストされたクエリを使用したMongo$lookupフィルター

    $match $lookup内 パイプラインはjobCollectionとは関係ありません ドキュメント。 tasksのドキュメントのみをフィルタリングします コレクション。したがって、もう1つ$matchを使用する必要があります $lookupの後のステージ ROOT(jobCollectionを除外します )ドキュメント。

    jobCollection.aggregate([
      { "$match": { "$text": { "$search": "1234" }}},
      { "$lookup": {
        "from": "task",
        "let": { "job_id": "$_id" },
        "pipeline": [
          { "$match": {
            "$expr": {
              "$and": [
                { "$eq": ["$job", "$$job_id"] },
                { "$eq": ["$status", "FAILED"] }
              ]
            }
          }}
        ],
        "as": "tasks"
      }},
      { "$match": { "tasks": { "$ne": [] }}},
    ])
    



    1. マングースの更新または多くのドキュメントの挿入

    2. MongoDBでこの非推奨の警告を削除するにはどうすればよいですか?また、なぜそれが発生するのですか?

    3. MongoDBを使用して配列フィールド内の特定のキー/値を更新する

    4. MongoDBでネストされたドキュメントを再帰的にトラバースする方法