Database

[{applicationId:"AAAA",name:"foo",version:NumberInt(1)},{applicationId:"AAAA",name:"foo",version:NumberInt(2)},{applicationId:"AAAA",name:"foo",version:NumberInt(3)},{applicationId:"BBBB",name:"foo",version:NumberInt(1)},{applicationId:"CCCC",name:"bar",version:NumberInt(1)},{applicationId:"CCCC",name:"bar",version:NumberInt(2)}]

Query

db.collection.aggregate([{$sort:{version:-1}},{$group:{_id:{"name":"$name","applicationId":"$applicationId"},previousVersions:{$push:"$$ROOT"}}},{$project:{_id:0,previousVersions:{$slice:["$previousVersions",1,{$size:"$previousVersions"}]}}},{$unwind:"$previousVersions"},{$replaceRoot:{newRoot:"$previousVersions"}}])

Result