Wie wäre es mit:
db.users.find({ "name": { "$exists": true } }).sort({'name': 1})
Denn wenn ein Feld, nach dem Sie sortieren möchten, nicht vorhanden ist, ist der zurückgegebene Wert null
und damit "niedriger" in der Reihenfolge als jedes positive Ergebnis. Es ist also sinnvoll, diese Ergebnisse auszuschließen, wenn Sie wirklich nur nach etwas mit einem passenden Wert suchen.
Wenn Sie wirklich alle Ergebnisse dort haben wollen und unabhängig von einem null
Inhalt, dann schlage ich vor, dass Sie sie über .aggregate()
"gewichten". :
db.users.aggregate([
{ "$project": {
"name": 1,
"score": {
"$cond": [
{ "$ifNull": [ "$name", false ] },
1,
10
]
}
}},
{ "$sort": { "score": 1, "name": 1 } }
])
Und das verschiebt alle null
Ergebnisse bis zum "Ende der Kette", indem Sie einen Wert als solchen zuweisen.