Я пытаюсь запросить свои события по их датам. Итак, каждое событие имеет дату начала и дату окончания.
Структура моей коллекции, в которой находятся эти события, следующая:
{
"_id": "5f2a7feae0c4e10017308fe5",
"events": [
{
"_id": "5f2a802ce0c4e10017308fe8",
"end": {
"dateTime": "2020-08-05T23:46:00.000Z"
},
"start": {
"dateTime": "2020-08-05T22:46:00.000Z"
}
}, ...
]
}
Итак, я попробовал следующий метод агрегирования:
Значения start и end представляют собой строки ISO, которые в моем случае являются началом и концом года.
Collection.aggregate([
{ $match: {owner: owner_id}},
{$unwind: '$events'},
{ $match :
{ 'events.start.dateTime':
{$gte: start,
$lt: end
}
}
},
{$sort: {'events.start.dateTime': 1}},
{$group: {_id: '$_id', 'events': {$push: '$events'}}}
])
Когда Я пробую это с фильтром $ match и получаю пустой массив обратно. Но если я попробую без фильтра $ match . Я получаю обратно все события из коллекции.
Кто-нибудь знает, где может быть проблема?