MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kann Mongo Dokumente mit leeren/fehlenden Feldern am Ende in aufsteigender Reihenfolge zurückgeben?

Beim Zurückgeben des Ergebnisses für db.jason.find().sort({"rank":1}) , ordnet MongoDB die Dokumente nach „Rang“-Typ und dann nach „Rang“-Wert. Zum Zweck der Sortierreihenfolge behandelt MongoDB Dokumente, in denen ein Feld fehlt, als hätten sie einen NULL-Typ für dieses Feld. Der NULL-Typ steht vor numerischen Typen und kann nicht geändert werden (siehe ). http://docs.mongodb.org/manual/reference/method/cursor.sort/ für die eingebaute Sortierreihenfolge). Ich würde vorschlagen, stattdessen zwei Abfragen zu erstellen (eine für Dokumente mit "Rang" und eine für Dokumente ohne "Rang") und die Ergebnisse in Ihrer Anwendung zusammenzuführen. Wenn Sie dies jedoch bei einer einzigen Abfrage belassen müssen, müssen Sie in allen Dokumenten "Rang" festlegen, um die gewünschte Reihenfolge zu generieren (z. B. durch Verwendung eines Sentinel-Werts mit einem Typ, der nach numerischen Typen sortiert wird).