Это мой запрос mongodb:
Booking.aggregate([
{ $match:
{ $and: [
{ $or: [
{ isDoubleRoom },
{ chosenRoom }
]},
{ month },
{ year },
] }},
{ $group: { _id: "$fullDate", count: { $sum: 1 } } }
]
На первом этапе я хотел бы отфильтровать по месяцу, году и условно: если isDoubleRoom, то фильтровать только по двойным комнатам, если нет, то фильтровать свойство selectedRoom. Дело в том, что $ или не переключается между фильтрами. Запрос возвращает не отфильтрованные (по выбранному isDoubleRoom $ или selectedRoom) результаты. То же самое сработало, когда я использовал его с find
вместо aggregate
. Но здесь мне нужно aggregate
для подсчета отфильтрованных результатов.