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