Database

[{id:1,scanner:"bandit",severity:"low",version:1},{id:2,scanner:"bandit",severity:"low",version:1},{id:3,scanner:"bandit",severity:"medium",version:1},{id:4,scanner:"bandit",severity:"medium",version:2},{id:5,scanner:"bandit",severity:"high",version:2},{id:6,scanner:"semgrep",severity:"critical",version:2},{id:7,scanner:"semgrep",severity:"critical",version:3},{id:8,scanner:"semgrep",severity:"info",version:4},{id:9,scanner:"semgrep",severity:"info",version:4},]

Query

db.collection.aggregate([{"$setWindowFields":{"partitionBy":"$scanner","sortBy":{"version":-1},"output":{"rank":{"$rank":{}}}}},{$match:{"rank":1}},{$group:{_id:{"scanner":"$scanner","severity":"$severity","version":"$version"},count:{$sum:1}}},{$project:{"_id":0,"scanner":"$_id.scanner","severity":"$_id.severity","version":"$_id.version","count":1}}])

Result