На самом деле я использую API mongDB через компонент tLibraryLoad, так как мне проще создавать сложные многоуровневые документы с использованием компонентов tJavaRow и tJava, чем с использованием компонентов палитры MongoDB.
Я читаю данные из Oracle, которые представляют собой значения даты с нулевым компонентом отметки времени: например:
29 ИЮНЯ 08 00.00.00
Импорт работает через Talend, однако записи в оболочке mongo появляются за предыдущий день. Вы можете видеть, что запись вставлена как 28-JUN-2008.
Выдержка из документа JSON в mongoDB:
"status_date": ISODate ("2008-06-28T23:00:00Z")
Это похоже на то, как если бы mongoDB (или Talend?) воспринимал полночь как конец предыдущего дня, а не как начало 29 июня 2008 года.
В моей схеме Talend я указал столбцы Oracle как типы даты с типом даты БД.
Любые советы приветствуются.
--- ОБНОВЛЕНИЕ 1 ------ Поскольку затронуты только некоторые даты, кажется, что это настройка летнего времени в mongoDB, чтобы настроить отображение на мой местный часовой пояс, поскольку затронутые даты находятся в задней половине год по летнему времени.
Корректирует ли дату из-за расположения оболочки монго?
Он корректирует дату из-за местоположения сервера монго, чтобы все люди, использующие оболочку монго, получали одинаковые ответы на запросы даты?
Будут ли разные люди, выполняющие разные запросы монго по датам, получать разные результаты в зависимости от их местоположения, даты их перехода на летнее время... т.е. вы можете себе представить даты с 1 ноября 2015 года, которые учитываются как вклад в цифры на 31 октября (в 23:00)....
i