上記のNitinGargの答えは、彼の例が文字列から配列ではなく文字列からハッシュに変換されることを除いて、ほとんど機能します。
Joel Harrisのコメントを考慮すると、適切な解決策は次のようになります。
db.jobs.find( { "jobLocationCity" : { $type : 2 } } ).snapshot().forEach( function (x) {
x.jobLocationCity = [ jobLocationCity ];
db.jobs.save(x);
});
または、db.evalを使用している場合:
function f() {
db.jobs.find( { "jobLocationCity" : { $type : 2 } } ).snapshot().forEach( function (x) {
x.jobLocationCity = [ jobLocationCity ];
db.jobs.save(x);
});
}
db.eval(f);