db.getCollection('job_logs').find({ job: 54}).sort({ job: 1, date: -1}) var jobs = [177]; db.getCollection('job_logs').aggregate( [ { $match: { job: { $in: jobs } , type: 2 }}, { $sort: { user: 1, date: -1 }}, { $lookup: { from: 'users', localField: 'user', foreignField: '_id', as: 'userD' } }, // { // $match: { // 'userD.type': 9 // } // }, { $project: { "date": 1, "username": "$userD.username" } }, { $unwind: '$username'}, { $group: { _id: "$username", date: { $first: "$date" } } }, { $project: { "user": "$_id", "date": 1, "_id": 0, } } ] ); // Get all Customer info db.customers.aggregate([ { $lookup: { from: "users", localField: "user", foreignField: "_id", as: "user_detail" } }, ]); db.customers.aggregate([ { $lookup: { from: "users", localField: "user", foreignField: "_id", as: "user_detail" } }, { $unwind: { path: "$user_detail" } }, { $project: { name: 1, contact: 1, phone: 1, email: 1, username: "$user_detail.username", password: "$user_detail.password", } } ]); /////////////////////////////////////////////////////// var sprayIds = [ "5c646e5d1e53e006dd0b76c5", "5c646e5d1e53e006dd0b76a7", "5c646e5d1e53e006dd0b76a6", "5c646e5d1e53e006dd0b76a5", "5c646e5d1e53e006dd0b76a4", "5c646e5d1e53e006dd0b76a3", "5c646e5d1e53e006dd0b76a2", "5c646e5d1e53e006dd0b76a1" ]; sprayIds = sprayIds.map(i => ObjectId(i)); var pipeline = [ { "$match": { _id: 64 } }, { "$unwind": "$sprayAreas" }, { "$match": { "sprayAreas._id": { $in: sprayIds} } }, { "$group": { "_id": "$_id", "sprayAreas": { $push: "$sprayAreas" } } } ]; db.jobs.aggregate(pipeline);