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

MongoDB v2.4.9 ordina per campo booleano

Il codice sopra funziona, i miei dati erano cattivi. Come ho scritto nel commento sopra, alcuni documenti avevano isFoo come stringa (non booleana) ed è per questo che vedevo i risultati contrastanti.

Ho dovuto cambiare il tipo del campo da String a Boolean, quindi ho provato questo:

db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) {   x.isFoo = new Boolean(x.isFoo);    db.users.save(x); });

Ma questo ha appena trasformato tutti i campi isFoo in Oggetti.

Dato che ero davvero stanco di affrontare questo problema, ho appena usato quanto segue per impostare tutti i campi isFoo su false e gestire le modifiche manualmente.

db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) {   x.isFoo = false;    db.users.save(x); });

Questo è stato molto fastidioso.