如何从字符串转换为日期数据类型?

时间:2013-03-18 09:49:43

标签: mongodb date csv type-conversion

enter image description here

我正在将数据从csv文件上传到MongoDB。它将OrderDate作为字符串数据类型,因此在使用BI工具创建报表时会遇到问题。 我的收藏中有大约10000条记录。

有人可以帮助我如何使用单个查询将OrderDate的数据类型更改为日期?

2 个答案:

答案 0 :(得分:18)

我认为您不能使用单个查询更改字段的类型。最简单的方法是在插入过程中使用Date函数将数据字符串转换为ISODate格式。但是,如果要处理已插入的数据,可以使用mongodb控制台使用以下代码执行此操作:

db.collection.find().forEach(function(element){
  element.OrderDate = ISODate(element.OrderDate);
  db.collection.save(element);
})

此代码将处理集合collection中的每个元素,并将Orderdate字段的类型从String更改为Date

答案 1 :(得分:1)

db.messages.find().forEach(function(doc) {
  doc.headers.datestamp = new Date(Date.parse(doc.headers.Date.toString())); 
  db.messages.save(doc);
  })

这很适合转换这种文字:   2007年11月14日星期二03:22:00 -0800(太平洋标准时间)

该文本来自一个名为安然语料库的电子邮件档案。