#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 в диапазон дат в одном поле даты.