在MongoDB中修改数据类型

引言

本文主要讲解Mongodb的类型转换。包括:string转double, string转int, string转Date。

0. 出现类型不一致的原因

ES导入数据到Mongo后,会出现类型统一改为String的问题。 
传统关系型数据库,在设计表处,右键就可以完成修改表类型。 
但是非关系型数据库,没有这种实现。只有通过命令行操作实现。 
验证表明,可以通过如下的接口进行修改。

1、Mongodb类型转换接口

复制代码
复制代码
//string转为double类型
db.law.find().forEach( function (x) {
  x.state = parseInt(x.state);
  db.law.save(x);
});

//string转为int类型
db.law.find().forEach( function (x) {
  x.ise= NumberInt (x.ise);
  db.law.save(x);
});

//string转化为date类型
db.law.find().forEach( function (x) {
 x.eift = new ISODate(x.eift);
  db.law.save(x);
});
复制代码
复制代码

 

2、类型转换一键脚本实现

复制代码
复制代码
[root@Node-C6 mongo_process]# cat ./mongo_uopdate.sh

#!/bin/sh
mongo data <<\EOF
db.law.find().forEach( function (x) {
  x.state = parseInt(x.state);
  x.id= NumberInt(x.id);
 x.eift = new ISODate(x.eift);
 x.ctime = new ISODate(x.ctime );
 x.pt= new ISODate(x.pt);
  db.law.save(x);
});
EOF
复制代码
复制代码

 

3、执行成功标记

[root@Node-C6 mongo_process]# ./mongo_uopdate.sh
MongoDB shell version: 3.2.7
connecting to: data
bye

参考: 
https://glassonionblog.wordpress.com/2014/05/15/mongodb-changing-column-names-and-column-types/

posted @   八英里  阅读(6394)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示