Satu-satunya cara untuk mengubah $type
dari data tersebut adalah untuk melakukan update pada data dimana data tersebut memiliki tipe yang benar.
Dalam hal ini, sepertinya Anda mencoba mengubah $type
dari 1 (ganda) hingga 2 (string).
Jadi cukup muat dokumen dari DB, lakukan cast (new String(x)
) lalu simpan kembali dokumen tersebut.
Jika Anda perlu melakukan ini secara terprogram dan seluruhnya dari shell, Anda bisa menggunakan find(...).forEach(function(x) {})
sintaks.
Menanggapi komentar kedua di bawah ini. Ubah bidang bad
dari angka ke string dalam koleksi foo
.
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {
x.bad = new String(x.bad); // convert field to string
db.foo.save(x);
});