sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo cambiar el tipo de un campo?

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);
});