sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur ändrar man typ av fält?

Det enda sättet att ändra $type av data är att utföra en uppdatering av data där data har rätt typ.

I det här fallet ser det ut som att du försöker ändra $type från 1 (dubbel) till 2 (sträng).

Så ladda helt enkelt dokumentet från DB, utför casten (new String(x) ) och spara sedan dokumentet igen.

Om du behöver göra detta programmatiskt och helt från skalet kan du använda find(...).forEach(function(x) {}) syntax.

Som svar på den andra kommentaren nedan. Ändra fältet bad från ett nummer till en sträng i samlingen foo .

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


  1. Kan inte få allowDiskUse:True att fungera med pymongo

  2. Hur man använder Predis, hur man ställer in (dvs lagrar) en flerdimensionell associativ array?

  3. Spring Data Mongo Repository::Gemensam delad metod för alla Repo-frågor

  4. MongoDB Säkerhetskopiera och återställa med MongoDump