在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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM