Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何从字符串转换为日期数据类型?_Mongodb_Date_Csv_Type Conversion - Fatal编程技术网

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

Mongodb 如何从字符串转换为日期数据类型?,mongodb,date,csv,type-conversion,Mongodb,Date,Csv,Type Conversion,我正在将数据从csv文件上载到MongoDB。它采用OrderDate作为字符串数据类型,因此在使用BI工具创建报告时会遇到问题。 我收藏了大约10000张唱片 有谁能帮助我如何通过单个查询将OrderDate的数据类型更改为Date?我认为您不能通过单个查询更改字段的类型。最简单的方法是在插入过程中使用ISODate函数将数据字符串转换为Date格式。但是,如果要处理已经插入的数据,可以使用mongodb控制台使用以下代码: db.collection.find().forEach(funct

我正在将数据从csv文件上载到MongoDB。它采用
OrderDate
作为字符串数据类型,因此在使用BI工具创建报告时会遇到问题。 我收藏了大约10000张唱片


有谁能帮助我如何通过单个查询将
OrderDate
的数据类型更改为Date?

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

db.collection.find().forEach(function(element){
  element.OrderDate = ISODate(element.OrderDate);
  db.collection.save(element);
})
此代码将处理集合中的每个元素
collection
,并将
Orderdate
字段的类型从
String
更改为
Date

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(太平洋标准时间)


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

谢谢你,这真的很有帮助。但在这里我看到它创造了一个新的领域。是否仍然可以在不创建新字段的情况下更改现有字段。它使用新值重写旧字段,而不是创建新字段。@divya MongoDB区分大小写。您从
OrderDate
字段获取值,并将新值放入另一个字段
OrderDate
,而不是使用同一个字段。我用正确的字段名编辑了你的问题和我的答案。如何将其从日期类型转换为字符串的相反方式。。。时间不好过。@Lion789您试过了吗?可能重复的作为给其他人的参考,
Collection.save()
已被弃用。错误注释:“使用insertOne、insertMany、updateOne或updateMany。”