关于mongodb:mongo变更数据类型

3次阅读

共计 663 个字符,预计需要花费 2 分钟才能阅读完成。

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 公布!

正文完
 0