Database

[{"_id":0,"amount":43,"timestamp":NumberLong(1648172177000),"username":"name@email.com"},{"_id":1,"amount":63,"timestamp":NumberLong(1646282484000),"username":"name@email.com"},{"_id":2,"amount":64,"timestamp":NumberLong(1648522583000),"username":"name@email.com"},{"_id":3,"amount":36,"timestamp":NumberLong(1647945939000),"username":"name@email.com"},{"_id":4,"amount":68,"timestamp":NumberLong(1646717526000),"username":"name@email.com"},{"_id":5,"amount":42,"timestamp":NumberLong(1647291641000),"username":"name@email.com"},{"_id":6,"amount":51,"timestamp":NumberLong(1647695014000),"username":"name@email.com"},{"_id":7,"amount":21,"timestamp":NumberLong(1647433523000),"username":"name@email.com"},{"_id":8,"amount":12,"timestamp":NumberLong(1648355394000),"username":"name@email.com"},{"_id":9,"amount":65,"timestamp":NumberLong(1648381355000),"username":"name@email.com"},{"_id":10,"amount":44,"timestamp":NumberLong(1647618201000),"username":"name@email.com"},{"_id":11,"amount":20,"timestamp":NumberLong(1647979947000),"username":"name@email.com"},{"_id":12,"amount":65,"timestamp":NumberLong(1647286589000),"username":"name@email.com"},{"_id":13,"amount":19,"timestamp":NumberLong(1647402001000),"username":"name@email.com"},{"_id":14,"amount":57,"timestamp":NumberLong(1648313444000),"username":"name2@email.com"},{"_id":15,"amount":14,"timestamp":NumberLong(1646117736000),"username":"name2@email.com"},{"_id":16,"amount":23,"timestamp":NumberLong(1647384684000),"username":"name@email.com"},{"_id":17,"amount":16,"timestamp":NumberLong(1647169673000),"username":"name@email.com"},{"_id":18,"amount":64,"timestamp":NumberLong(1647969198000),"username":"name@email.com"},{"_id":19,"amount":19,"timestamp":NumberLong(1648450084000),"username":"name@email.com"},{"_id":20,"amount":47,"timestamp":NumberLong(1647231959000),"username":"name@email.com"},{"_id":21,"amount":19,"timestamp":NumberLong(1648002946000),"username":"name@email.com"},{"_id":22,"amount":62,"timestamp":NumberLong(1648472685000),"username":"name@email.com"},{"_id":23,"amount":26,"timestamp":NumberLong(1647567632000),"username":"name@email.com"},{"_id":24,"amount":50,"timestamp":NumberLong(1646209733000),"username":"name2@email.com"},{"_id":25,"amount":49,"timestamp":NumberLong(1646193714000),"username":"name@email.com"},{"_id":26,"amount":55,"timestamp":NumberLong(1647291963000),"username":"name2@email.com"},{"_id":27,"amount":37,"timestamp":NumberLong(1646556057000),"username":"name2@email.com"},{"_id":28,"amount":53,"timestamp":NumberLong(1647691441000),"username":"name2@email.com"},{"_id":29,"amount":12,"timestamp":NumberLong(1647452970000),"username":"name2@email.com"}]

Query

db.collection.aggregate([{$match:{timestamp:{$gte:1646438400000,$lt:1647302400000}}},{"$addFields":{"period":{"$cond":[{$gt:["$timestamp",1646870400000]},"current","prior"]}}},{$group:{_id:{period:"$period",username:"$username",},average:{$avg:"$amount"}}},{$project:{username:"$_id.username","data.k":"$_id.period","data.v":{average:"$average"},_id:0}},{$group:{_id:"$username",data:{$push:"$data"}}},{$project:{"data":{"$arrayToObject":"$data"}}},{$project:{_id:1,current:"$data.current",prior:"$data.prior"}}])

Result