You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mongoimport导入CSV至MongoDB时如何指定日期格式解决解析报错

核心报错原因与正确配置方法

当前配置存在两个直接导致报错的问题:

  1. field_file_types.txt中date()的传参错误:--columnsHaveTypes模式下,date类型括号内需要传入Go语言风格的日期格式模板,而非日期样例。Go的日期模板固定以参考时间2006-01-02 15:04:05为基准(对应年-月-日 24小时制:分:秒),占位符不能用Java风格的yyyy/MM/dd写法。
  2. 执行的mongoimport命令末尾多了一个无匹配的双引号,属于语法错误。

针对CSV中2022-06-19 09:06:30.49657这种yyyy-MM-dd HH:mm:ss.SSSSS格式的日期,修正后的配置如下:
field_file_types.txt

id.auto()
created_timestamp.date(2006-01-02 15:04:05.00000)

如果实际日期是斜杠分隔的yyyy/MM/dd HH:mm:ss.SSSSS格式,把第二行改成created_timestamp.date(2006/01/02 15:04:05.00000)即可。

修正后的导入命令

mongoimport --type csv --file ./latest.csv --columnsHaveTypes --fieldFile=./field_file_types.txt
MongoDB 默认自动识别的日期格式

不手动指定日期模板时,mongoimport仅能自动解析三类格式的日期值:

  • 符合RFC3339规范的时间字符串,例如2022-06-19T09:06:30Z、2022-06-19T09:06:30+08:00
  • 不带毫秒/微秒的标准ISODate字符串,格式为yyyy-MM-dd HH:mm:ss
  • 纯数字时间戳:10位秒级时间戳、13位毫秒级时间戳
常用日期字段配置示例

以下为fieldFile中常用的日期类型写法,可直接复用:

  • 解析带时区的标准ISODate:created_at.date(2006-01-02T15:04:05.000Z)
  • 解析13位毫秒时间戳:created_at.date(ms)
  • 解析10位秒级时间戳:created_at.date(epoch)
  • 解析斜杠分隔的年月日时分秒:created_at.date(2006/01/02 15:04:05)
  • 解析仅含年月日的日期:created_at.date(2006-01-02)

内容的提问来源于stack exchange,提问作者Inspiraller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:48:21