Database
db={"employees":[{"_id":"61b9f07300127afb99f8c1ea","title":"Developer","firstName":"Jack","lastName":"Strauss","managerIDs":["61cedf84800749316306c6da"],"deptID":"61b9f073267500832f5d94d0"},{"_id":"61cedf84800749316306c6da","title":"Sr. Developer","firstName":"Richard","lastName":"Haris","managerIDs":null,"deptID":"61b9f073267500832f5d94d0"},{"_id":"61cedf17800749316306c6cf","title":"Manager App Development","firstName":"Arnold","lastName":"Cliff","deptID":"61b9f073267500832f5d94d0"},{"_id":"61d4503e1223496ab8a5ae3c","title":"Developer","firstName":"Andrew","lastName":"Turner","managerIDs":["61cedf17800749316306c6cf","61cedf84800749316306c6da"],"deptID":"61b9f073267500832f5d94d0"}]}
Query
db.employees.aggregate([{/** managers won't have and managerIDs*/"$match":{"managerIDs.0":{"$exists":false}}},{/** find managed Developers*/"$graphLookup":{"from":"employees","startWith":"$_id","connectFromField":"_id","connectToField":"managerIDs","as":"managedDevs","maxDepth":0}},{/**format output*/"$project":{"_id":0,"title":1,"firstName":1,"lastName":1,"devCount":{"$size":"$managedDevs"}}}])