Database

db={"Product":[{"product":"1","version":{"state":"Actif","name":"1.0.0"},"createdDate":"01/01/2020"},{"product":"1","version":{"state":"A faire","name":"3.0.0"},"createdDate":"01/01/2020"},{"product":"1","version":{"state":"Archiver","name":"2.0.0"},"createdDate":"02/01/2020"},{"product":"2","version":null,"createdDate":"01/01/2020"},{"product":"2","version":{"state":"Archiver","name":"2.0.0"},"createdDate":"02/01/2020"},{"product":"3","version":{"state":"Archiver","name":"2.0.0"},"createdDate":"01/01/2020"}]}

Query

db.Product.aggregate([{$sort:{product:1,version:-1,createdDate:-1}},{$group:{_id:"$product",root:{$push:"$$ROOT"}}},{$sort:{_id:1}},{$replaceRoot:{newRoot:{$arrayElemAt:[{$concatArrays:[{$filter:{input:"$root",cond:{$eq:["$$this.version.state","Actif"]}}},[{$arrayElemAt:["$root",0]}]]},0]}}}])

Result