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);
});