0

I have a members table. members table contains members' details. I want to know the member belongs to which group so I have to check with group's table.

members table

[
  { memberId: 1, name: 'william', gmail: 'william@gmail.com' },
  { memberId: 2, name: 'Alfred', gmail: 'afd@gmail.com' }
]

groups table

[
  {
    name: 'Dairy',
    members: [{ memberId: 1 }, { memberId: 4 }]
  },
  {
    name: 'Grocery',
    members: [{ memberId: 1 }, { memberId: 2 }]
  }
]

expected output


[
  {
    group: 'Dairy',
    members: [{ memberId: 1, name: 'william', gmail: 'william@gmail.com' }]
  },
  {
    group: 'Grocery',
    members: [
      { memberId: 1, name: 'william', gmail: 'william@gmail.com' },
      { memberId: 2, name: 'Alfred', gmail: 'afd@gmail.com' }
    ]
  }
]
AsZik
  • 621
  • 1
  • 4
  • 20

1 Answers1

1

As mentioned a standard $lookup suffices:

db.groups.aggregate([
  {
    "$lookup": {
      "from": "members",
      "localField": "members.memberId",
      "foreignField": "memberId",
      "as": "members"
    }
  }
])

Mongo Playground

Tom Slabbaert
  • 21,288
  • 10
  • 30
  • 43