$project in $lookup mongodb
You can use $lookup
3.6 syntax to $project
the fields inside the $lookup
pipeline
User.aggregate([ { "$lookup": { "from": "schedules", "let": { "id": "$_id.phone" }, "pipeline": [ { "$match": { "$expr": { "$eq": ["$customer.phone", "$$id"] }}}, { "$project": { "scheduleStart": 1, "scheduleEnd": 1 }} ], "as": "user_detail" }}])
For version of mongo version > 3.6 this query should work for you:
User.aggregate([{ $match: { storeKey: req.body.store, } }, { $group: { _id: { id: "$_id", name: "$name", cpf: "$cpf", phone: "$phone", email: "$email", birthday: "$birthday", lastName: "$lastname" }, totalServices: { $sum: "$services" }, } }, { $lookup: { from: "schedules", localField: "_id.phone", foreignField: "customer.phone", as: "user_detail" } }, { $project: { _id: 1, name: 1, name: 1, cpf: 1, phone: 1, email: 1, birthday: 1, totalServices: 1, totalValue: { $sum : "$user_detail.value" }, count: { $sum: 1 }, user_detail: { scheduleEnd: 1, scheduleStart: 1, } } },