Database

[{"signedUpAt":new Date("2023-01-29T00:30:48.370+00:00"),"loggedInAt":new Date("2023-01-29T00:30:48.370+00:00"),id:1},{"loggedInAt":new Date("2023-01-29T00:30:48.370+00:00"),"signedUpAt":new Date("2023-01-29T00:30:48.370+00:00"),id:2},{"loggedInAt":new Date("2023-01-29T00:30:48.370+00:00"),"signedUpAt":new Date("2023-01-29T00:30:48.370+00:00"),id:3},{"loggedInAt":new Date("2023-01-27T00:30:48.370+00:00"),"signedUpAt":new Date("2023-01-01T00:30:48.370+00:00"),id:4},{"loggedInAt":new Date("2023-01-01T00:30:48.370+00:00"),"signedUpAt":new Date("2023-01-01T00:30:48.370+00:00"),id:5},{"loggedInAt":new Date("2023-01-01T00:30:48.370+00:00"),"signedUpAt":new Date("2023-01-01T00:30:48.370+00:00"),id:6},{"loggedInAt":new Date("2000-01-01T00:30:48.370+00:00"),"signedUpAt":new Date("2000-01-01T00:30:48.370+00:00"),id:7}]

Query

db.collection.aggregate([{"$addFields":{"randSortKey":{"$rand":{}},signedUpHrs:{$dateDiff:{startDate:"$signedUpAt",endDate:new Date("2023-01-29T00:30:48.370+00:00"),unit:"hour"}},loggedInDaysAgo:{$dateDiff:{startDate:"$loggedInAt",endDate:new Date("2023-01-29T00:30:48.370+00:00"),unit:"day"}}}},{"$addFields":{partition:{$switch:{branches:[{case:{$lte:["$signedUpHrs",24]},then:-1},{case:{$lte:["$loggedInDaysAgo",7]},then:1},{case:{$and:[{$lte:["$loggedInDaysAgo",15]}],},then:2},{case:{$and:[{$lte:["$loggedInDaysAgo",30]}],},then:3},],default:4}}}},{"$setWindowFields":{"partitionBy":"$partition","sortBy":{"randSortKey":1},"output":{"rank":{"$rank":{}},total:{$sum:1}}}},{"$match":{$expr:{$or:[{$ne:["$partition",-1]},{$and:[{partition:-1},{$lte:["$rank",2]}]}]}}},{"$limit":4}])

Result