Database

[{"ProjectId":123,"FeedbackClient":[{SentOn:"2021-01-01",Grade:2,DateVoted:"2021-01-01"},{SentOn:"2021-01-02",Grade:5,DateVoted:"2021-02-01"},{SentOn:"2021-01-03",Grade:2,DateVoted:"2021-03-05"},{SentOn:"2021-01-04",Grade:5,DateVoted:"2021-04-01"},{SentOn:"2021-01-05",Grade:null,DateVoted:null},{SentOn:"2021-01-06",Grade:null,DateVoted:null},],"FeedbackFinal":{Grade:4,DateVoted:"2021-01-01"}},{"ProjectId":456,"FeedbackClient":[{SentOn:"2021-01-01",Grade:2,DateVoted:"2021-01-01"},{SentOn:"2021-01-02",Grade:2,DateVoted:"2021-02-01"},{SentOn:"2021-01-03",Grade:5,DateVoted:"2021-03-05"},{SentOn:"2021-01-04",Grade:1,DateVoted:"2021-04-01"},{SentOn:"2021-01-05",Grade:null,DateVoted:null},{SentOn:"2021-01-06",Grade:null,DateVoted:null},],"FeedbackFinal":null}]

Query

db.collection.aggregate([{"$project":{"ProjectId":5.0,Grade:{$cond:{if:{$ne:["$FeedbackFinal",null]},then:"$FeedbackFinal.Grade",else:{$let:{vars:{client:{$slice:[{$filter:{input:"$FeedbackClient",cond:{$ne:["$$this.DateVoted",null]}}},-3]}},in:{$avg:"$$client.Grade"}}}}}}}])

Result