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