MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB v2.4.9 trier par champ booléen

Le code ci-dessus fonctionne, mes données étaient mauvaises. Comme je l'ai écrit dans le commentaire ci-dessus, certains des documents avaient isFoo comme chaîne (pas booléenne) et c'est pourquoi je voyais des résultats mitigés.

J'ai dû changer le type du champ de String en Boolean, j'ai donc essayé ceci :

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

Mais cela vient de transformer tous les champs isFoo en objets.

Étant donné que j'étais vraiment fatigué de traiter ce problème, j'ai simplement utilisé ce qui suit pour définir tous les champs isFoo sur false et gérer les modifications manuellement.

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

C'était très ennuyeux.