Database

db={"users":[{_id:ObjectId("56cb91bdc3464f14678934ca"),firstName:"a"},{_id:ObjectId("56cb91bdc3464f14678934cb"),firstName:"b"},{_id:ObjectId("56cb91bdc3464f14678934cc"),firstName:"c"},],"userActivity":[{ip:"1",ua:"2",date:ISODate("2020-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934ca")},{ip:"1",ua:"2",date:ISODate("2020-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934ca")},{ip:"1",ua:"2",date:ISODate("2021-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934ca")},{ip:"1",ua:"2",date:ISODate("2020-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934cb")},{ip:"1",ua:"2",date:ISODate("2021-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934cb")},{ip:"1",ua:"2",date:ISODate("2020-03-02T01:11:18.965Z"),user:ObjectId("56cb91bdc3464f14678934cc")}]}

Query

db.userActivity.aggregate([{$match:{date:{$lt:ISODate("2020-04-02T01:11:18.965Z")}}},{$lookup:{from:"users",localField:"user",foreignField:"_id",as:"userdata",},},{$unwind:{path:"$userdata"}},{$project:{date:1,"userdata.firstName":1,"user_id":"$userdata._id"},},{$group:{"_id":{"user_id":"$user_id","user_name":"$userdata.firstName"},"dates":{"$push":"$date"}}}])

Result