mongodb 修改数据类型 版本4.0 (string to int)
MongoDB string to 版本 修改 数据类型 int 4.0
2023-09-14 09:00:18 时间
因业务需要,使用canal同步数据时,将mysql数据同步至mongodb时,有些数据类型是int,但保存时却为string,所以需要进行手工转换。
mongodb版本差异很大,4.0以下的低版本的方案一般是:
db.my_collection.find().forEach( function(obj) { obj.my_value= new NumberInt(obj.my_value); db.my_collection.save(obj); });
但这种方案在4.0是无效的,因此笔者尝试了多种方法:
此种方法是有效的,并且支持多个字段进行修改,主要参考文章:https://stackoverflow.com/questions/59808898/mongodb-convert-element-data-type-from-numeric-string-to-number-for-a-large-col
db.SurName.aggregate([
{
$addFields: {
field1: {$toInt: "$field1"},
field2: {$toInt: "$field2"}
}
},
{$out: "SurName"}
])
以下方案也是有效的,但是笔者没找到怎么修改多字段的数据类型,主要参考文章: https://stackoverflow.com/questions/4973095/how-to-change-the-type-of-a-field
db.orders.drop(); db.orders.insertMany( [ { _id: 1, item: "apple", qty: "5", price: 10 }, { _id: 2, item: "pie", qty: "10", price: NumberDecimal("20.0") }, { _id: 3, item: "ice cream", qty: "2", price: "4.99" }, { _id: 4, item: "almonds" , qty: "5", price: 5 } ] ) var bulkOps = []; db.orders.find({}).forEach(function (doc) { var q = parseInt(doc.qty); bulkOps.push( { "updateOne": { "filter": {"_id": doc._id}, "update": {"$set": {"qty": q}} } } ); }) db.orders.bulkWrite(bulkOps);
相关文章
- declare命令的用法_robo3t连接mongodb
- 【探花交友】学习MongoDB快速入门上手
- MongoDB聚合索引在实际开发中的应用场景-嵌套文档的聚合查询
- MongoDB数据库集合中的文档管理操作教程
- Mongodb driver for java 使用样例详解大数据
- MongoDB数据迁移实践:轻松让你完成迁移(mongodb的数据迁移)
- 数据分析用MongoDB进行商品数据分析(mongodb商品)
- MongoDB数据库添加用户实现安全控制(mongodb添加用户)
- 如何快速创建 MongoDB 测试数据(mongodb测试数据)
- MongoDB的正确维护与优化(mongodb维护)
- 据访问利用MongoDB实现安全高效的并发数据访问(mongodb并发数)
- MongoDB:是否收费?(mongodb收费吗)
- 集MongoDB: 副本集为安全保驾护航(mongodb副本)
- 文档Mongodb官方文档:优化您的数据库性能(mongodb官方)
- MongoDB零碎数据迁移指南(mongodb迁移)
- MongoDB之旅:开启你的登录之旅(登录mongodb)
- MongoDB应用之附近的人定位(mongodb附近的人)
- 高效扩容 数据稳固——了解MongoDB分片集(mongodb分片集)
- Mongodb:高效快速的查询语法简介(mongodb查询语法)
- 深入理解JavaScript调用MongoDB的方法(js调用mongodb)
- 如何高效的使用 MongoDB 进行数据清理?(mongodb清理数据)
- Learn How to Connect Your Java Application with MongoDB in Just a Few Steps(java连接mongodb)
- Using Java to Work with MongoDB: A Guide for Developers(java操作mongodb)
- MongoDB引领NoSQL数据库榜单新风向(mongodb排名)
- 如何正确关闭MongoDB集群?(mongodb关闭集群)
- MongoDB与经纬度——地理空间的新解决方案(mongodb经纬度)
- MongoDB:高效稳定的数据库,提升数据管理效率(mongodb的使用)
- mongodb数据库游标的使用浅析