Я создаю конвейер агрегации для извлечения документов и добавляю новое поле «expired» (логическое), его значение основано на поле «expireAt» (Date)
поле с истекшим сроком считается истинным, если:
- expiredAt отсутствует или нулевой или пустой
- expiredAt <сейчас </li>
это моя пробная версия:
{project:
expired: {
$not: {
$or: [{ expireAt: null }, { $gte: ['$expireAt', new Date()] }]
}
}
}
этот код всегдадать мне ложь, даже если документ имеет значение expireAt, которое
, выполнив объяснение:
{ '$project': { _id: true, expireAt: true, expired: { '$cons
t': false } } }
результат запроса:
- обратите внимание на поле expireAtи соответствующее значение с истекшим сроком действия
сегодня равно: 27/11/2018
{expired: false}, {expireAt: 2019-07-15T17: 18: 11.000Z, expired:false}, {expireAt: 2017-07-16T17: 18: 11.000Z, срок действия истек: false},
также {expireAt: {$ существующие: false}} выдают ошибку: MongoError:Нераспознанное выражение '$ Существует' в queryCallback
любая идея, чтобы проверить существование поля (если его значение равно нулю или нет)