MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

$ mongodb में 2 नेस्टेड स्तर तक फ़िल्टर करें

आपको $unwind की ज़रूरत है पहली सरणी तो आप आसानी से लागू कर सकते हैं $filter नेस्टेड सरणी पर

db.collection.aggregate([
  { "$unwind": "$Hospitais" },
  { "$match": { "Hospitais.nome": "Dorio Silva" } },
  { "$project": {
    "Hospitais": {
      "$filter": {
        "input": "$Hospitais.utis",
        "as": "uti",
        "cond": {
          "$eq": ["$$uti.nome", "UTI1"]
        }
      }
    }
  }}
])

या आप इसे भी आजमा सकते हैं

db.collection.aggregate([
  { "$match": { "Hospitais.nome": "Dorio Silva" } },
  { "$project": {
    "Hospitais": {
      "$filter": {
        "input": {
          "$map": {
            "input": "$Hospitais",
            "as": "hospital",
            "in": {
              "nome": "$$hospital.nome",
              "utis": {
                "$filter": {
                  "input": "$$hospital.utis",
                  "as": "uti",
                  "cond": {
                    "$eq": ["$$uti.nome", "UTI1"]
                  }
                }
              }
            }
          }
        },
        "as": "hospital",
        "cond": {
          "$eq": ["$$hospital.nome", "Dorio Silva"]
        }
      }
    }
  }}
])

दोनों समान आउटपुट देंगे

[
  {
    "Hospitais": [
      {
        "_id": 893910,
        "leitos": [
          {
            "_id": 1.2893812e+08,
            "_paciente": "Oliver"
          },
          {
            "_id": 1.2803918239e+10,
            "_paciente": "Priscilla"
          }
        ],
        "nome": "UTI1"
      }
    ]
  }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ExpressJS और NodeJS में नेवला से प्रतिक्रिया वस्तु में क्रमबद्ध कुंजी

  2. MongoDb डेटाबेस बनाम संग्रह

  3. MongoDB में अनुक्रमित डेटा खोजने की जटिलता (बिग-ओ) क्या है?

  4. हम एक्सप्रेस/नोडज में अनुरोध प्राथमिकता को कैसे संभालते हैं?

  5. MongoDB क्वेरी बिना $where . के एक ही संग्रह में 2 फ़ील्ड की तुलना करती है