sql >> Database >  >> NoSQL >> MongoDB

Hoe het type van een veld wijzigen?

De enige manier om de $type . te veranderen van de gegevens is het uitvoeren van een update van de gegevens waarbij de gegevens het juiste type hebben.

In dit geval lijkt het erop dat u de $type . probeert te wijzigen van 1 (dubbel) tot 2 (string).

Dus laad gewoon het document uit de DB, voer de cast uit (new String(x) ) en sla het document vervolgens opnieuw op.

Als u dit programmatisch en volledig vanuit de shell moet doen, kunt u de find(...).forEach(function(x) {}) gebruiken syntaxis.

In reactie op de tweede opmerking hieronder. Wijzig het veld bad van een getal naar een tekenreeks in verzameling 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. StackExchange.Redis gebruiken in een ASP.NET Core-controller

  2. Redis hash zeer lage schrijfsnelheid

  3. Json importeren uit bestand in mongoDB met behulp van mongoimport

  4. redis HLL te veel valse positieven