MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie ändere ich den Feldtyp?

Die einzige Möglichkeit, den $type zu ändern der Daten besteht darin, eine Aktualisierung der Daten durchzuführen, wenn die Daten den richtigen Typ haben.

In diesem Fall sieht es so aus, als ob Sie versuchen, den $type zu ändern von 1 (doppelt) bis 2 (string).

Also einfach das Dokument aus der DB laden, den Cast durchführen (new String(x) ) und speichern Sie das Dokument erneut.

Wenn Sie dies programmgesteuert und vollständig von der Shell aus tun müssen, können Sie find(...).forEach(function(x) {}) verwenden Syntax.

Als Antwort auf den zweiten Kommentar unten. Ändern Sie das Feld bad von einer Zahl zu einem String in der Sammlung foo .

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