Database

[/** 1st mon (total 5)*/{createdAt:345600000,value:2},{createdAt:345600000,value:3},/** 1st tue*/{createdAt:432000000,value:1},/** 1st wed*/{createdAt:518400000,value:1},/** 1st thu*/{createdAt:604800001,value:1},/** 1st fri*/{createdAt:691200000,value:1},/** 1st sat*/{createdAt:777600000,value:1},/** 1st sun (2 total)*/{createdAt:864000000,value:2},/** 2nd mon (1 total)*/{createdAt:950400000,value:1},/** 2nd tue*/{createdAt:1036800000,value:1},/** 2nd wed*/{createdAt:1123200000,value:1},/** 2nd thu*/{createdAt:1209600000,value:1},/** 2nd fri*/{createdAt:1296000000,value:1},/** 2nd sat*/{createdAt:1382400000,value:1},/** 2nd sun (4 total)*/{createdAt:1468800001,value:1},{createdAt:1468800002,value:1},{createdAt:1468800003,value:2},]

Query

db.collection.aggregate([{"$addFields":{createdAt:{"$dateToString":{"date":{"$toDate":"$createdAt"},"format":"%Y-%m-%d"}}}},{"$group":{"_id":"$createdAt","value":{"$sum":"$value"}}},{"$addFields":{"createdAt":{$dayOfWeek:{"$toDate":"$_id"}}}},{"$group":{"_id":"$createdAt","average":{"$avg":"$value"}}},{"$project":{_id:0,weekDay:"$_id",average:1}}])

Result