La única manera de cambiar el $type
de los datos es realizar una actualización de los datos donde los datos tienen el tipo correcto.
En este caso, parece que está intentando cambiar el $type
de 1 (doble) a 2 (cadena).
Así que simplemente cargue el documento desde la base de datos, realice la conversión (new String(x)
) y luego guarde el documento nuevamente.
Si necesita hacer esto mediante programación y completamente desde el shell, puede usar find(...).forEach(function(x) {})
sintaxis.
En respuesta al segundo comentario a continuación. Cambia el campo bad
de un número a una cadena en la colección foo
.
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {
x.bad = new String(x.bad); // convert field to string
db.foo.save(x);
});