sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb samlar tre samlingar

Du kan prova nedanstående aggregeringsfråga.

Frågan nedan skickar sections till department när de ansluts och $group att driva avdelningen för att skapa den slutliga strukturen.

db.college.aggregate([
  {
    "$match": {
      "university_id": "5834ecf7432d92675bde9d82"
    }
  },
  {
    "$lookup": {
      "localField": "_id",
      "from": "departments",
      "foreignField": "college_id",
      "as": "departments"
    }
  },
  {
   "$unwind": {
     "path": "$departments",
     "preserveNullAndEmptyArrays": true
    }
  },
  {
    "$lookup": {
      "localField": "departments._id",
      "from": "sections",
      "foreignField": "department_id",
      "as": "departments.sections"
    }
  },
  {
    "$group": {
      "_id": "$_id",
      "name": {
        "$first": "$name"
      },
      "university_id": {
        "$first": "$university_id"
      },
      "departments": {
        "$push": "$departments"
      }
    }
  }
])



  1. mongodb:använd kapslade dokument eller separata samlingar med referenser

  2. Data null efter att ha sparat entitet med Moongose ​​och GraphQL

  3. Vad är den grundläggande arkitekturen för en node.js + mongodb-app?

  4. Mongoose Populera efter Aggregate