Database

[{"_id":"idq1","questiontext":"some question","author":"auth2","Answers":[]},{"_id":"idq2","questiontext":"some question","author":"auth1","Answers":[{"_id":"id1","author":"auth1","comments":[{"author":"auth1","comment":"some comments","rate":1,"_id":"idc1"},{"comment":"some comments","_id":"idc2","rate":3},{"comment":"some comments","_id":"idc3","rate":2},{"comment":"some comments","_id":"idc4","rate":5}]},{"_id":"id2","author":"auth2","comments":[]}]}]

Query

db.collection.aggregate([{$match:{"_id":"idq2","Answers._id":"id1"}},{$project:{_id:0,Answers:{$arrayElemAt:[{$filter:{input:"$Answers",cond:{$eq:["$$this._id","id1"]}}},0]}}},{$unwind:"$Answers.comments"},{$sort:{"Answers.comments.rate":1}},{$group:{_id:"$Answers._id",author:{$first:"$Answers.author"},comments:{$push:"$Answers.comments"}}}])

Result