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

Hvordan ændrer man typen af ​​et felt?

Den eneste måde at ændre $type af dataene er at udføre en opdatering af dataene, hvor dataene har den korrekte type.

I dette tilfælde ser det ud til, at du prøver at ændre $type fra 1 (dobbelt) til 2 (streng).

Så indlæs blot dokumentet fra DB'en, udfør castingen (new String(x) ) og gem derefter dokumentet igen.

Hvis du har brug for at gøre dette programmatisk og helt fra skallen, kan du bruge find(...).forEach(function(x) {}) syntaks.

Som svar på den anden kommentar nedenfor. Skift feltet bad fra et tal til en streng 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. Hvordan skifter jeg mellem redis-databasen?

  2. Får mongoose.js-forespørgsler til at køre synkront

  3. Hvordan genvinder man slettet plads uden `db.repairDatabase()`?

  4. Hvad er InputSplit i Hadoop MapReduce?