MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

tipo mongodb cambia in array

La risposta di Nitin Garg sopra funziona quasi, tranne per il fatto che il suo esempio converte da una stringa a un hash, NON da una stringa a un array.

Tenendo conto dei commenti di Joel Harris, la soluzione corretta sarebbe:

db.jobs.find( { "jobLocationCity" : { $type : 2 } } ).snapshot().forEach( function (x) {
    x.jobLocationCity = [ jobLocationCity ];
    db.jobs.save(x);
});

O se si utilizza db.eval:

function f() {
    db.jobs.find( { "jobLocationCity" : { $type : 2 } } ).snapshot().forEach( function (x) {
        x.jobLocationCity = [ jobLocationCity ];
        db.jobs.save(x);
    });
}
db.eval(f);