sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB v2.4.9 řazení podle booleovských polí

Výše uvedený kód funguje, moje data byla špatná. Jak jsem napsal v komentáři výše, některé dokumenty měly isFoo jako řetězec (ne booleovský), a proto jsem viděl smíšené výsledky.

Musel jsem změnit typ pole z String na Boolean, takže jsem zkusil toto:

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

Ale to právě změnilo všechna pole isFoo na objekty.

Vzhledem k tomu, že jsem byl opravdu unaven řešením tohoto problému, použil jsem následující k nastavení všech polí isFoo na hodnotu false a změny jsem provedl ručně.

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

To bylo velmi nepříjemné.




  1. Počítejte události a vložte řetězcový literál během agregace

  2. $filtr až 2 vnořené úrovně v mongodb

  3. Oprávnění odepřeno, když je po úspěšné instalaci spuštěn příkaz 'mongod'

  4. Zkopírujte první hodnotu pole do jiného pole v MongoDB