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

Mongo DB - Changing data type to Boolean resulting in object type

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

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

但在 mongodb 罗盘中查看时,它会将字段更新为对象类型。请参考图片

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

Mongo罗盘

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

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