Единственият начин да промените $type
от данните е да извърши актуализация на данните, където данните са от правилния тип.
В този случай изглежда, че се опитвате да промените $type
от 1 (двойно) до 2 (низ).
Затова просто заредете документа от DB, извършете прехвърлянето (new String(x)
) и след това запазете документа отново.
Ако трябва да направите това програмно и изцяло от обвивката, можете да използвате find(...).forEach(function(x) {})
синтаксис.
В отговор на втория коментар по-долу. Променете полето bad
от число към низ в колекция foo
.
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {
x.bad = new String(x.bad); // convert field to string
db.foo.save(x);
});