Kode di atas berfungsi, data saya buruk. Seperti yang saya tulis di komentar di atas, beberapa dokumen memiliki isFoo sebagai String (bukan Boolean) dan itulah mengapa saya melihat hasil yang beragam.
Saya harus mengubah jenis bidang dari String ke Boolean jadi saya mencoba ini:
db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) { x.isFoo = new Boolean(x.isFoo); db.users.save(x); });
Tapi itu hanya mengubah semua bidang isFoo menjadi Objek.
Melihat saya sangat lelah menangani masalah ini, saya hanya menggunakan yang berikut ini untuk mengatur semua bidang isFoo ke false dan hanya menangani perubahan secara manual.
db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) { x.isFoo = false; db.users.save(x); });
Ini sangat menjengkelkan.