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:"$version"}}},{$project:{_id:0,applicationId:"$_id.applicationId",name:"$_id.name",previousVersions:{$slice:["$previousVersions",1,{$size:"$previousVersions"}]}}},{$unwind:"$previousVersions"}])

Result