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