Mongo DB-将数据类型更改为布尔值导致对象类型

问题描述

我正在尝试将一些字段的数据类型从字符串更新为布尔值。我在mongo shell中使用以下代码

db.SampleTest.find().forEach( function (d) {
d.smoke = new Boolean(d.smoke);
db.SampleTest.save(d);
});

但是在mongodb指南针中查看时,它将字段更新为对象类型。请参考图片

如何将字段类型更新为布尔值?

蒙哥罗盘

enter image description here

解决方法

如果您使用 MongoDB 4.2 ,则以下是修复程序。您需要使用$toBool$set运算符。

db.SampleTest.find().forEach( function (d) {
    db.SampleTest.updateOne({"_id":d._id},[{"$set":{"smoke":{"$toBool": "$smoke"}}}])
})