Merge data from two collections into one collection for retrieving a list of items

I have two collections namely; users and usersHobbies, the users collection has the following document schema

{
  id: 001
  name: "ABC",
  age: 19,
  skills: [a, b, c]
}

and userHobbies schema is as follows

{
  _id: 01,
  userId: 001,
  favorite: 'reading',
  leastFavorite: 'cooking'
  totalHobbies: 6
},

//New hobby with the passage of time (new document entry)
{
  _id: 02,
  userId: 001,
  favorite: 'coding',
  pastFavorite: 'reading',
  leastFavorite: 'cooking'
  totalHobbies: 11
},

A user has 1-M hobbies and for each new entry, a new document is entered with the same userId (only for users who wish to update or insert new hobby), What I am now looking for is a way to merge user collection with its userHobbies collection, and bear in mind, that I want to display all users, whereas some users might not have hobbies at all. The desired find method result is as follows (the data is displayed in pseudo React DataTable)

id | * Name* | Age | Skills | Hobbies |
001 | ABC | 19 | a, b, c | coding, reading
002 | DEF | 28 | a, b, c, d |
003 | XYZ | 22 | a, b | reading

As you can see, I am retreiving all users regardless of whether or not they have 1-M hobbies merged together in Hobbies column or not
Is $lookup aggregation the right tool for this or some other aggregation query like $merge
Thanks

@Daniyal_Khan, since you are querying related data from two collections and presenting the result in a UI, you need to use the $lookup stage of the aggregation. The result will be a set of documents which can be shown in the UI. The $merge is used for storing the aggregation output to a collection (and that is not your intention).

@Prasad_Saya thanks for your answer, regarding $lookup, there is a slight confusion wrt my use-case as you can see a user can have multiple documents of his hobbies 1-M, whereas I only want to group all different documents in one array result for example

{
  _id: 01,
  userId: 001,
  favorite: 'reading',
  leastFavorite: 'cooking'
  totalHobbies: 6
},

{
  _id: 02,
  userId: 001,
  favorite: 'coding',
  pastFavorite: 'reading',
  leastFavorite: 'cooking'
  totalHobbies: 11
},

Now I want $lookup results to look as follows

{
 id: 001
 name: "ABC",
 age: 19,
 skills: [a, b, c]
 hobbies: [
   {
    userId: 001,
    favorite: 'reading',
    leastFavorite: 'cooking'
  },
  {
    userId: 001,
    favorite: 'coding',
    pastFavorite: 'reading',
    leastFavorite: 'cooking'
  },
  ]
}

@Daniyal_Khan, that is what you are likely to get. You can try the query and then format the result in a projection as per your UI needs.

Lol, thinking wrt UI, I forgot that $lookup aggregation works the same way. Thanks once again