MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come modificare il tipo di un campo?

L'unico modo per cambiare il $type dei dati è eseguire un aggiornamento sui dati in cui i dati hanno il tipo corretto.

In questo caso, sembra che tu stia cercando di cambiare il $type da 1 (doppio) a 2 (stringa).

Quindi carica semplicemente il documento dal DB, esegui il cast (new String(x) ) e quindi salvare nuovamente il documento.

Se hai bisogno di farlo a livello di codice e interamente dalla shell, puoi usare find(...).forEach(function(x) {}) sintassi.

In risposta al secondo commento qui sotto. Modifica il campo bad da un numero a una stringa nella raccolta foo .

db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {   
  x.bad = new String(x.bad); // convert field to string
  db.foo.save(x);
});