首页 > 解决方案 > Mongo DB - 将数据类型更改为布尔值导致对象类型

问题描述

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

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

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

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

蒙戈指南针

在此处输入图像描述

标签: mongodbtypesmongo-shell

解决方案


如果您使用MongoDB 4.2,那么下面是修复。您需要使用$toBool$set运算符。

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

推荐阅读