首页 > 解决方案 > 使用 SQL 将字符串列转换为 mongodb 中的日期时间

问题描述

我在 mongodb 表 ALTMETRIC_2018 中加载了 json 数据,并且我正在使用 SQL 进行查询(我对 mongo 查询语言一无所知)。问题是该citation.pubdate列的类型是字符串,我想使用 SQL 将其更改为日期类型。常见的 SQL 命令(如“更改列”或函数)在这里不起作用。请指导我我被卡住了

标签: sqlmongodb

解决方案


MongoDB中的SQL?我认为您使用将 SQL 转换为 Mongo 语言的 Mongo IDE。Mongo 不支持 SQL。

Mongo 没有方案表。没有带有类型的列。每个文档(行)可以不同。每个文档中的 citiation.pubdate 可以不同。

如果您将数据保存为 DateTime,mongo 会将其保存为 DateTime,您无法更改数据库,只能更改“数据”。

更新:

创建一个脚本来查找所有数据,更改日期并保存。

db.collectionName.find().forEach(function(d) {
  var date = d.citation.pubdate;
  var asDate = new ISODate(date);


 db.collectionName.updateOne({_id: d._id}, { $set: { "citation.pubdate": asDate } });


});

如果您的日期不是有效格式,也许您必须更改日期转换器。


推荐阅读