mongo变更数据类型

Posted 阿丽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongo变更数据类型相关的知识,希望对你有一定的参考价值。

mongo写入加了引号,导致一些数值字段都是string类型,修改字段类型为数值型。

db.Report99.find().forEach(
    function(doc){
        db.Report99.update({\'_id\': doc._id},{$set:{"begin-quantity": parseFloat(doc["begin-quantity"])}}); //改为浮点数
        db.Report99.update({\'_id\': doc._id},{$set:{"end-quantity": NumberInt(doc["end-quantity"])}}); // 改为整型
    }
);

mongo4.2+版本,可参数如下方式:

db.getCollection("my-report").update(
    {
        "begin-quantity": { $type: "string" }
    },
    [{ $set: { "begin-quantity": { $convert: { input: "$average-quantity", to: "double" } } } }],  //有效类型: string|bool|int|long|double|decimal|date|timestamp|objectId ...
    { multi: true }
)

说明:
1、如果集合名包含特殊字符,使用db.getCollection(\'my-report\')
2、forEach中doc取某个字段值可直接doc.key,如果key中包含特殊字符,使用doc[\'\']

本文由博客一文多发平台 OpenWrite 发布!

以上是关于mongo变更数据类型的主要内容,如果未能解决你的问题,请参考以下文章

线上问题系列DB字段类型变更导致核心服务不可用

mongo主库地址变更,从库修改数据源IP

MongoDB 变更的发布流程

应用安全 - 数据库 | 工具 - mongo数据库 - mongo-express - 漏洞 - 汇总

Serverless 解惑——函数计算如何访问 Mongo 数据库

数据迁移——技术选型