Хорошо, я вернусь к моему ответу на ваш предыдущий вопрос и объясню:
db.test1.aggregate(
[
{
$project: {
endDate:1,
endDateFormatted:{$dateToString: {date:"$endDate",format:"%Y-%m-%d"}},
current:{$dateToString: {date:new Date(),format:"%Y-%m-%d"}}
}
},
{
$project: { ab: {$cmp: ['$endDateFormatted','$current']},endDate:1}
},
{
$match: {ab:{$eq:1}} // <= note de difference with your previous question
},
{
$project: {
endDate:1
}
},
]
);
Пояснения:
- $ dateToString преобразует предоставленную дату ISO в предоставленный формат, т.е.
{$ dateToString: {date: ISODate ("2020-02-21T00: 00: 00.000 + 0000"), формат: "% Y-% m-% d"}} выводит "2020-02-01"
просто адаптируйте ab-критерии к тому, что вам нужно ({$ eq: 1} для будущих дат, {$ eq: -1} для прошлых дат, {$ eq: 0} для текущей даты, {$ ne: 0} для не сегодня даты и т.д ...)