使用ISODate导入CSV文件MongoDB

使用ISODate导入CSV文件MongoDB,mongodb,date,mongoimport,isodate,Mongodb,Date,Mongoimport,Isodate,当我从mongoDB导出数据时,我获得以下文件: mongoDB中的所有内容都是字符串,除了日期是ISODate 123@123.com,sha1:64000:18:BTJnM903gIt5FNlSsZIRx1tLC9ErPJuB:9YVs800sgRPr1aaLj73qqnJ6,123,123,123@123.com,2017-04-28T09:20:07.480Z,cus_AYcVXIUf68nT52 如果我将此文件导入MongoDB,它会将每个值作为字符串值导入。我需要将日期解析为日期格

当我从mongoDB导出数据时,我获得以下文件:

mongoDB中的所有内容都是字符串,除了日期是ISODate

123@123.com,sha1:64000:18:BTJnM903gIt5FNlSsZIRx1tLC9ErPJuB:9YVs800sgRPr1aaLj73qqnJ6,123,123,123@123.com,2017-04-28T09:20:07.480Z,cus_AYcVXIUf68nT52
如果我将此文件导入MongoDB,它会将每个值作为字符串值导入。我需要将日期解析为日期格式,其余可以是字符串

我看到了MongoImport的一个论点——列类型。我尝试过,但没有任何结果:

mongoimport -u test-p test --authenticationDatabase test -h localhost:30158 --db test--collection users --type csv --file users.csv --upsert --upsertFields username --fields username.string\(\),password.string\(\),cname.string\(\),sname.string\(\),mail.string\(\),creation.date\(\),validation.auto\(\),clients.string\(\),customer.string\(\) --columnsHaveTypes
我得到这个错误:

Failed: type coercion failure in document #0 for column 'creation', could not parse token '2017-04-28T09:20:07.480Z' to type date
我能做什么


问候。

摘要:您需要提供日期的格式

从上的mongoimport文档中,您不能只说
created.date\(\)
——您需要提供一个参数,它是CSV中日期表示方式的模板。显然,您这样做的方式是,根据,以您选择的格式呈现特定的参考日期

我认为参考日期的格式应如下所示:

2006-01-02T15:04:05.000Z
creation.date\(2006-01-02T15:04:05.000Z\)
因此,您需要更改mongoimport调用以使用格式模板指定日期,如下所示:

2006-01-02T15:04:05.000Z
creation.date\(2006-01-02T15:04:05.000Z\)

对于像我这样漫不经心的读者:日期必须是2006年1月2日,如上所示。它不能是您的文件中的第一个日期或任何其他日期。我的csv文件中的日期类似于
2018-01-08T00:00:00.000Z
mongoimport中定义为
Gmttime.date\(2006-01-02T15:04:05.000Z\)的相应字段
仍在获取
失败:在文档#0中为列“Gmttime”键入强制失败,无法将标记“Gmttime”解析为键入日期