CodamAIDocs
Themafertig

Sortierung

Mehrere Sortierkriterien, Richtung ASC/DESC/NONE, Sortieren über Beziehungen und was bei einem falschen Sortierpfad passiert.

Ausprägungen
ASCDESCNONEmehrere Kriterienüber Pfadohne orderKriterium ohne Richtungfalscher Pfad → 400

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üsselBedeutung
fielddas Feld, auch als Pfad wie company.companyname
orderASC aufsteigend (A → Z, 1 → 9, alt → neu), DESC absteigend, NONE nicht sortieren

Sortierung in Stufen

Beispieldaten und order wie oben:

labelactiveamount
Alphatrue5
Betafalse10
Gammatrue15
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

Sortieren in allen Formen

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" }

  1. 1
    CDMS
    sucht das Feld im Modell
  2. 2
    CDMS→Client
    nicht gefunden → 400 wrong-order-element-exception

Ergebnis: 400. Anders als ein falscher Filter wird ein falsches Sortierfeld nicht still übergangen.

Entscheidungstabelle

Was passiert mit einem Sortierkriterium?
fieldorderErgebnis
vorhandenASC / DESCwird angewendet
vorhandenNONEübersprungen
fehlt–übersprungen
–fehltübersprungen
unbekanntASC / DESC400 wrong-order-element-exception
–kleingeschrieben, z. B. asc400 invalid-value|parameter.order[0].order

Fallen

Quellen im Code und in der Wissensdatenbank
  • CDMS/cdms-persistence-database – DatabaseOrderBuilder
  • CDMS/cdms-commons – ListOrderLogic, SearchSortOrder
  • Probe gegen cdms-integrationtest (preset, employee), 2026-09-21
Suchen