在MongoDB中修改数据类型

引言

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

0. 出现类型不一致的缘由

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

一、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); });

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

[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

三、执行成功标记

[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/数据库

相关文章
相关标签/搜索