Get the Hirearchy View In MongoDB and Spring Boot

It works for me. But you are missing the parent doc in your example.

Input docs:

db.coll.insertMany(
[
  {
    _id: ObjectId("612f84891f2da394c2b8ed21"),
    user: '002',
    refUserId: '001',
    status: 'SUCCESS'
  },
  {
    _id: ObjectId("612f84891f2da394c2b8ed22"),
    user: '003',
    refUserId: '001',
    status: 'SUCCESS'
  },
  {
    _id: ObjectId("612f85a11f2da394c2b8ed23"),
    user: '001',
    status: 'SUCCESS'
  }
])

Query:

db.coll.aggregate(
[
  {
    "$graphLookup": {
      "from": "coll",
      "startWith": "$user",
      "connectFromField": "user",
      "connectToField": "refUserId",
      "as": "children",
      "maxDepth": 3
    }
  }
])

Result:

[
  {
    _id: ObjectId("612f84891f2da394c2b8ed21"),
    user: '002',
    refUserId: '001',
    status: 'SUCCESS',
    children: []
  },
  {
    _id: ObjectId("612f84891f2da394c2b8ed22"),
    user: '003',
    refUserId: '001',
    status: 'SUCCESS',
    children: []
  },
  {
    _id: ObjectId("612f85a11f2da394c2b8ed23"),
    user: '001',
    status: 'SUCCESS',
    children: [
      {
        _id: ObjectId("612f84891f2da394c2b8ed22"),
        user: '003',
        refUserId: '001',
        status: 'SUCCESS'
      },
      {
        _id: ObjectId("612f84891f2da394c2b8ed21"),
        user: '002',
        refUserId: '001',
        status: 'SUCCESS'
      }
    ]
  }
]

Cheers,
Maxime.