12

在此处输入图像描述

我正在将数据从 csv 文件上传到 MongoDB。OrderDate由于在使用 BI 工具创建报告时面临问题,它被视为字符串数据类型。我的收藏中有大约 10000 条记录。

谁能帮助我如何通过OrderDate单个查询更改日期的数据类型?

4

2 回答 2

25

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

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

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

于 2013-03-18T10:12:36.700 回答
1
db.messages.find().forEach(function(doc) {
  doc.headers.datestamp = new Date(Date.parse(doc.headers.Date.toString())); 
  db.messages.save(doc);
  })

这很好地转换了这种文本:Tue, 14 Nov 2007 03:22:00 -0800 (PST)

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

于 2015-02-07T03:51:26.927 回答