Database

[{"key":1,"user":"bob","ExpensePeriod":"202201","ExpenseGroup":"Travel","ExpenseAmount":12.56},{"key":2,"user":"bob","ExpensePeriod":"202201","ExpenseGroup":"Travel","ExpenseAmount":30.12},{"key":3,"user":"bob","ExpensePeriod":"202201","ExpenseGroup":"Food","ExpenseAmount":5},{"key":4,"user":"steve","ExpensePeriod":"202201","ExpenseGroup":"Food","ExpenseAmount":2},{"key":5,"user":"steve","ExpensePeriod":"202201","ExpenseGroup":"Food","ExpenseAmount":4}]

Query

db.collection.aggregate([{$group:{_id:{"user":"$user","period":"$ExpensePeriod","group":"$ExpenseGroup"},TotalSpent:{$sum:"$ExpenseAmount"}}},{$project:{"user":"$_id.user","period":"$_id.period","group":"$_id.group","TotalSpent":1,_id:0}}])

Result