MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como alterar o tipo de um campo?


A única maneira de alterar o $type dos dados é realizar uma atualização nos dados onde os dados têm o tipo correto.

Nesse caso, parece que você está tentando alterar o $type de 1 (duplo) a 2 (string).

Então, simplesmente carregue o documento do banco de dados, execute o cast (new String(x) ) e, em seguida, salve o documento novamente.

Se você precisar fazer isso de forma programática e inteiramente a partir do shell, poderá usar o find(...).forEach(function(x) {}) sintaxe.

Em resposta ao segundo comentário abaixo. Altere o campo bad de um número para uma string na coleção foo .
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {   
  x.bad = new String(x.bad); // convert field to string
  db.foo.save(x);
});