Database

[{"channel":"abc","date":"2019-01-01","revenue":100},{"channel":"xyz","date":"2019-02-10","revenue":100,"quantity":100},{"channel":"def","date":"2020-01-01","revenue":100,"quantity":100},{"channel":"abc","date":"2021-06-01","revenue":100,"quantity":100},{"channel":"abc","date":"2021-08-10","revenue":100,"quantity":100},{"channel":"abc","date":"2020-03-23","revenue":100,"quantity":100},{"channel":"abc","date":"2021-08-12","revenue":100,"quantity":100}]

Query

db.collection.aggregate([{"$set":{"date-year":{"$year":{"$dateFromString":{"dateString":"$date","format":"%Y-%m-%d"}}},"cur-year":{"$year":"$$NOW"},"prv-year":{"$subtract":[{"$year":"$$NOW"},1]}}},{"$match":{"$expr":{"$in":["$date-year",["$cur-year","$prv-year"]]}}},{"$group":{"_id":"$channel","cur_year_quantity":{"$sum":{"$cond":[{"$eq":["$date-year","$cur-year"]},"$quantity",0]}},"cur_year_revenue":{"$sum":{"$cond":[{"$eq":["$date-year","$cur-year"]},"$revenue",0]}},"prev_year_quantity":{"$sum":{"$cond":[{"$eq":["$date-year","$prv-year"]},"$quantity",0]}},"prev_year_revenue":{"$sum":{"$cond":[{"$eq":["$date-year","$prv-year"]},"$revenue",0]}}}},{"$set":{"channel":"$_id"}},{"$project":{"_id":0}}])

Result