Database
[{"createdAt":ISODate("2022-05-01"),user:{_id:1}},{"createdAt":ISODate("2022-05-01"),user:{_id:1}},{"createdAt":ISODate("2022-05-01"),user:{_id:1}},{"createdAt":ISODate("2022-05-01"),user:{_id:1}},{"createdAt":ISODate("2022-05-01"),user:{_id:1}},{"createdAt":ISODate("2022-05-01"),user:{_id:2}},{"createdAt":ISODate("2022-05-01"),user:{_id:2}},]
Query
db.collection.aggregate([{$group:{_id:{user:"$user._id","createdAt~~~week":{"$let":{"vars":{"parts":{"$dateToParts":{"date":{"$subtract":["$createdAt",{"$multiply":[{"$subtract":[{"$let":{"vars":{"day_of_week":{"$mod":[{"$add":[{"$dayOfWeek":"$createdAt"},6]},7]}},"in":{"$cond":{"if":{"$eq":["$$day_of_week",0]},"then":7,"else":"$$day_of_week"}}}},1]},86400000]}]}}}},"in":{"$dateFromParts":{"year":"$$parts.year","month":"$$parts.month","day":"$$parts.day"}}}}},sum:{$sum:1}}},{$match:{sum:{$gt:3}}},{"$group":{"_id":"$_id.createdAt~~~week","count":{"$addToSet":"$_id.user"}}},{"$project":{"_id":false,"createdAt~~~week":"$_id","count":{"$size":"$count"}}}])