#mongodb #date #mongoimport
#mongodb #Дата #mongoimport
Вопрос:
Я импортирую несколько CSV-файлов и использую то, что должно быть официальным форматом даты. Но получение этой ошибки:
could not parse token '2018-01-01 03:00:00' to type date
мои данные выглядят так:
17544,1,2018-01-01 00:00:00,1,1.0
17545,1,2018-01-01 01:00:00,1,1.0
17546,1,2018-01-01 02:00:00,1,1.0
17547,1,2018-01-01 03:00:00,1,2.0
мой формат выглядит так, как показано в примерах из документации
https://docs.mongodb.com/v4.2/reference/program/mongoimport /
mongoimport --type csv -d databoard -c samples
--fields="row.int32(),stationID.int32(),ts.date(),speciesID.int32(),counts.int32()"
--columnsHaveTypes --drop data/raw/sample2.csv
Что я делаю не так?
Я также не уверен, как использовать --headerFields
with --fields
, поэтому я удалил поля из первой строки даты.
Ответ №1:
согласно документам, вы должны указать аргумент в date, который указывает формат даты
mongoimport --type csv -d databoard -c samples
--fields="row.int32(),stationID.int32(),ts.date(2006-01-02 15:04:05),speciesID.int32(),counts.int32()"
--columnsHaveTypes --drop data/raw/sample2.csv
Комментарии:
1. Всем этим хорошим людям, которые задавались вопросом, могут ли они изменить эту нелепую произвольную фиктивную дату в заголовке, ответ… не совсем . Вы можете попробовать, но большинство попыток завершатся неудачей. Мне удалось изменить секунды на: 04, : 05 или : 06.
Ответ №2:
Вы можете напрямую использовать первую строку вашего CSV-файла для хранения ваших типов дат. В этом случае вы захотите использовать эту --headerline
опцию.
Первая строка будет: row.int32(),stationID.int32(),ts.date(2006-01-02 15:04:05),speciesID.int32(),counts.int32()
Кроме того, помните, что __нелепая произвольная 2006-01-02 15:04:05
или около того (более или менее 1 секунды) дата должна соблюдаться…