Database
[{_id:"1","project":244,"scanner":"sonarqube","version":1},{_id:"2","project":244,"scanner":"sonarqube","version":2},{_id:"3","project":244,"scanner":"sonarqube","version":2},{_id:"4","project":244,"scanner":"shellcheck","version":1},{_id:"5","project":244,"scanner":"shellcheck","version":2},{_id:"6","project":244,"scanner":"shellcheck","version":3},{_id:"7","project":244,"scanner":"powershell","version":2},{_id:"8","project":244,"scanner":"powershell","version":3},{_id:"9","project":244,"scanner":"powershell","version":4},{_id:"10","project":244,"scanner":"powershell","version":4}]
Query
db.collection.aggregate([{$sort:{version:-1}},{$group:{_id:"$scanner",version:{$first:"$version"},test:{$push:{v:"$version",id:"$_id",p:"$project"}}}},{$project:{items:{$filter:{input:"$test",as:"item",cond:{$eq:["$$item.v","$version"]}}}}},{$unwind:"$items"},{$project:{scanner:"$_id",_id:"$items.id",project:"$items.p",version:"$items.v"}}])