sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB v2.4.9 ordenar por campo booleano

El código anterior funciona, mis datos eran malos. Como escribí en el comentario anterior, algunos de los documentos tenían isFoo como una cadena (no booleana) y es por eso que estaba viendo resultados mixtos.

Tuve que cambiar el tipo de campo de Cadena a Booleano, así que probé esto:

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

Pero eso solo convirtió todos los campos de isFoo en Objetos.

Como estaba realmente cansado de lidiar con este problema, solo usé lo siguiente para establecer todos los campos de isFoo en falso y simplemente manejar los cambios manualmente.

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

Esto fue muy molesto.