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

Může mongo vrátit dokumenty s prázdnými/chybějícími poli na konci ve vzestupném pořadí?

Při vrácení výsledku pro db.jason.find().sort({"rank":1}) MongoDB seřadí dokumenty podle typu „rank“ a poté podle hodnoty „rank“. Pro účely řazení MongoDB zachází s dokumenty, kde chybí pole, jako s typem NULL pro toto pole. Typ NULL je seřazen před číselnými typy a toto nelze změnit (viz http://docs.mongodb.org/manual/reference/method/cursor.sort/ pro vestavěný typ řazení). Navrhoval bych místo toho vytvořit dva dotazy (jeden pro dokumenty obsahující „hodnocení“ a jeden pro dokumenty bez „hodnocení“) a sloučit výsledky ve vaší aplikaci. Pokud však potřebujete zachovat tento jediný dotaz, budete muset ve všech dokumentech nastavit "rank", aby se vygenerovalo pořadí, jaké si přejete (například pomocí sentinelové hodnoty s typem, který se řadí podle číselných typů).




  1. Max a skupina v Mongodb

  2. Administrační panel pro Node.js a Mongoose

  3. (mongoose/promises) Jak zkontrolujete, zda byl dokument vytvořen pomocí findOneAndUpdate s upsert

  4. Jak číst sbírku po kouscích po 1000?