Фильтр данных MongoDB по диапазону

#mongodb #mongodb-query #aggregation-framework

#mongodb #mongodb-запрос #агрегация-фреймворк

Вопрос:

У меня есть одна коллекция, в которой я хочу фильтровать данные на основе диапазона. Диапазон будет выглядеть следующим образом: на прошлой неделе (last_week) В прошлом месяце (last_month) Последний квартал (last_quarter)

Я хочу принимать входные данные как last_week или last_month или last_quarter и на основе введенных данных я хочу отфильтровать данные из документов, соответствующих указанным критериям.

Возможно ли создать критерии «на лету» на основе заданных входных данных?

Ответ №1:

Да, вы можете. Создайте свои критерии следующим образом,

 query = {};
query.createdDate = {
    $gt: last_week,
    $lt: last_month,
};
 

Комментарии:

1. спасибо, но я хочу сделать это в блоке агрегации. Поясняющий пример подробнее здесь: поле ввода будет либо last_week, либо last_month, а не оба. агрегирование должно сначала преобразовать last_week или last_month в диапазон дат в одном поле даты.