Worum es geht
order in parameter legt die Reihenfolge der Treffer fest. Es ist eine Liste von Kriterien:
"order": [
{ "field": "active", "order": "ASC" },
{ "field": "amount", "order": "DESC" }
]
| Schlüssel | Bedeutung |
|---|---|
field | das Feld, auch als Pfad wie company.companyname |
order | ASC aufsteigend (A → Z, 1 → 9, alt → neu), DESC absteigend, NONE nicht sortieren |
Sortierung in Stufen
Beispieldaten und order wie oben:
| label | active | amount |
|---|---|---|
| Alpha | true | 5 |
| Beta | false | 10 |
| Gamma | true | 15 |
flowchart LR
A["Stufe 1: active ASC<br/>false vor true"] --> B["Beta (false)"]
A --> C["Alpha, Gamma (true)"]
C --> D["Stufe 2: amount DESC<br/>bei Gleichstand"]
D --> E["Gamma (15), Alpha (5)"]
Ergebnis: Beta, Gamma, Alpha.
Alle Ausprägungen
Wann: eine Spalte, eine Richtung
[{ "field": "amount", "order": "DESC" }] liefert Gamma, Beta, Alpha.
Ergebnis: Sortiert nach einem Feld.
Wann: Gleichstände sollen stabil aufgelöst werden.
Häng weitere Kriterien an. Als letztes Kriterium eignet sich ein eindeutiges Feld wie id oder _createdOn, dann ist die Reihenfolge immer gleich.
Ergebnis: Reihenfolge ohne Zufall.
Wann: Eine Oberfläche schaltet die Sortierung einer Spalte aus, schickt das Kriterium aber weiter mit.
{ "field": "amount", "order": "NONE" } wird übersprungen.
Ergebnis: Als stünde das Kriterium nicht da.
Wann: { "field": "amount" } oder { "order": "ASC" }
Ein unvollständiges Kriterium wird übersprungen, ohne Fehler.
Ergebnis: Als stünde das Kriterium nicht da.
Wann: Sortieren nach einem Feld eines referenzierten Objekts: { "field": "company.companyname", "order": "ASC" }.
Es erscheinen nur Objekte, die diese Beziehung haben. Mitarbeiter ohne Firma fehlen in data, totalCount zählt sie mit. Siehe Pfade.
Ergebnis: Sortiert nach dem Firmennamen.
Wann: order fehlt oder ist leer.
Die Datenbank liefert die Treffer in einer Reihenfolge, die sie selbst wählt. Die kann sich zwischen zwei Aufrufen ändern.
Ergebnis: Nicht festgelegt. Beim Blättern können Objekte doppelt erscheinen oder fehlen.
Wann: { "field": "nope", "order": "ASC" } oder { "field": "company.nope", "order": "ASC" }
-
1CDMSsucht das Feld im Modell
-
2CDMS→Clientnicht gefunden → 400
wrong-order-element-exception
Ergebnis: 400. Anders als ein falscher Filter wird ein falsches Sortierfeld nicht still übergangen.
Entscheidungstabelle
| field | order | Ergebnis |
|---|---|---|
| vorhanden | ASC / DESC | wird angewendet |
| vorhanden | NONE | übersprungen |
| fehlt | – | übersprungen |
| – | fehlt | übersprungen |
| unbekannt | ASC / DESC | 400 wrong-order-element-exception |
| – | kleingeschrieben, z. B. asc | 400 invalid-value|parameter.order[0].order |