Теперь перечислено как необходимое исправление для 4.1; надеюсь, это будет добавлено на этот раз!
я есть коллекция с полем даты, и я хочу создать монго-представление, которое фильтрует все документы по текущей дате. Например, я хочу, чтобы мое представление содержало все документы за последние 7 дней.
У меня есть сценарий JavaScript, который создает представление с конвейером агрегации. Я использовал метод javascript - new Date (), чтобы написать условие за последние 7 дней:
{
"$lt": [
{"$subtract": [new Date(), "$DateOfDocument"]}, // difference in milliseconds
1000 * 60 * 60 * 24 * 7 // 7 days in milliseconds
]
}
Но когда я выполняю скрипт, который создает представление, mongo вычисляет 'new Date ()', а затем создает представление с результатом 'new Date ()' как ISODate.Теперь конвейер агрегации вычисляет представление по последнему времени выполнения сценария, а не по текущей текущей дате.
{
"$lt": [
{"$subtract": [ISODate("2018-02-05T06:52:32.10+0000"), "$DateOfDocument"]},
604800000
]
}
Есть ли способ получить представление, отфильтрованное по текущей дате? Любой метод агрегации на текущую дату, например, оракул'SYSDATE'? Я не хочу выполнять сценарий, который воссоздает представление каждый раз, когда я хочу прочитать представление.