Добавление условия в поле даты в PDI

Я использую PDI для извлечения данных из базы данных. У меня проблема, когда я не могу добавить условие в поле даты, так как оно всегда выдает ошибку.

Я пробовал следующие способы

{news_date: {$gte: ISODate("2020-12-30")} }
{news_date: {$gte: new Date("2020-12-30")} }

ничего не работает, и я всегда получаю ошибки. Любая помощь в этом отношении будет высоко оценена. Как извлечь данные из базы данных mongo, отфильтрованные по дате?

Ниже приведена ошибка, которую я получаю при предварительном просмотре, что также не имеет для меня смысла введите здесь описание изображения

введите здесь описание изображения


person ghengalala    schedule 29.12.2020    source источник
comment
Вам нужно указать этап агрегации (в данном случае это $match stage)   -  person R2D2    schedule 29.12.2020
comment
@kiko, у меня все та же проблема.   -  person ghengalala    schedule 29.12.2020
comment
Возможно, удалите квадратные скобки в приведенном выше окне, чтобы он правильно принял сцену.   -  person R2D2    schedule 29.12.2020
comment
@ kiko075 Пробовал, та же проблема. Также все остальные запросы корректно работают с квадратными скобками. я использую проекцию, совпадение, добавление поля в другом преобразовании, и все работает. как только я добавляю дату проверки, я начинаю получать ошибки, которые не имеют смысла. если вы видите скриншоты, которые я приложил, ошибка находится в строке, которой нет в запросе....   -  person ghengalala    schedule 29.12.2020
comment
Кажется, это специфично для PDI, можете ли вы попробовать: { news_date : { $gte : { $date : 2020-12-30T00:00:00Z }}}   -  person R2D2    schedule 29.12.2020
comment
Также проверьте, чтобы java-драйвер pdi mongo был совместим с базой данных, см. здесь: to-recent-mongodb-upgrade-to-3" title="pentaho bi mongodb ошибка агрегации ввода из-за недавнего обновления mongodb до 3"> stackoverflow.com/questions/49039298/   -  person R2D2    schedule 29.12.2020
comment
@ kiko075 Большое спасибо, это работает. Последний вопрос, если вы можете помочь. как указать переменную вместо жестко заданной даты, например {news_date: {$gte: {$date: ${DATE} }}} или {news_date: {$gte: {$date: ${DATE} }}}   -  person ghengalala    schedule 29.12.2020
comment
В собственной оболочке JavaScript mongodb вы можете определить переменные перед агрегацией, как в JS, следующим образом: var x = значение, и вы можете использовать его позже в агрегации, например: var x = 2020-12-30; db.aggregate([ {$match:{y:x}} ])   -  person R2D2    schedule 29.12.2020
comment
Давайте продолжим обсуждение в чате.   -  person ghengalala    schedule 29.12.2020


Ответы (1)


Это работает для меня:

{ news_date: { $gte: ISODate("2020-12-30T00:00:00.000Z")} }

Но как выглядит сохраненная news_date?

person R2D2    schedule 29.12.2020
comment
Не работает для меня. я также добавил скриншот запроса и сообщения с вопросом - person ghengalala; 29.12.2020
comment
пример сохраненной даты: 2021-12-29T08:59:43.000+00:00 - person ghengalala; 29.12.2020