Теперь перечислено как необходимое исправление для 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'? Я не хочу выполнять сценарий, который воссоздает представление каждый раз, когда я хочу прочитать представление.

Ответы на вопрос(1)

Ваш ответ на вопрос