У меня есть запрос, который я использую $ lookup , и внутри этого запроса мне нужно передать параметр для «фильтрации» результатов, основанных на поле scheduleStart
(я использовал момент .js чтобы передать даты моим запросам).Я не знаю, куда мне передать параметры.
Мой запрос
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",
"let": { "id": "$_id.phone" },
"pipeline": [
{ "$match": { "$expr": { "$eq": ["$customer.phone", "$$id"] }}},
{ "$project": { "scheduleStart": 1, "scheduleEnd": 1, "value": 1 }}
],
"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: 1
}
},
Параметры, которые я хочу передать в этом запросе:
start = '2018-12-13 00:00'
period = '2017-01-13 00:00'
Фактический результат моего запроса:
6:
count: 1
totalServices: 0
totalValue: 73
user_detail: Array(2)
0: {_id: "5bb2832890c4f23d207b5d71", scheduleStart: "2018-10-02 08:20", scheduleEnd: "2018-10-02 08:40", value: 40}
1: {_id: "5bfd9c13e1193a4f30df05e4", scheduleStart: "2018-11-27 00:03", scheduleEnd: "2018-11-27 00:13", value: 33}
_id: {id: "5bfed8bd70de7a383855f09e", name: "Chris Santos G", phone: "11969109995", email: "csantosgrossi@gmail.com", birthday: "1992-03-06"}
Как передать параметр для фильтрации по scheduleStart
результатам?Я не знаю, нужно ли мне проходить внутри $ lookup или после.