$typeを変更する唯一の方法 データの一部は、データのタイプが正しい場合にデータの更新を実行することです。
この場合、$typeを変更しようとしているようです。 1(ダブル)から2(ストリング)まで。
したがって、DBからドキュメントをロードし、キャストを実行するだけです(new String(x) )その後、ドキュメントを再度保存します。
プログラムで完全にシェルからこれを行う必要がある場合は、find(...).forEach(function(x) {})を使用できます。 構文。
以下の2番目のコメントに応えて。 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);
});