WHERE-Klausel (NoSQL-Abfrage)

GILT FÜR: NoSQL

Die optionale WHERE-Klausel (WHERE <filter_condition>) gibt Bedingungen an, die die JSON-Elemente in der Quelle erfüllen müssen, damit sie von der Abfrage in die Ergebnisse einbezogen werden. Ein JSON-Element muss die angegebenen Bedingungen erfüllen (true), um für das Ergebnis berücksichtigt zu werden. Die Indexebene verwendet die WHERE-Klausel zum Ermitteln der kleinsten Teilmenge von Quellelementen, die Teil des Ergebnisses sein können.

Syntax

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Beschreibung
<filter_condition> Gibt die Bedingung an, die erfüllt sein muss, damit die Elemente zurückgegeben werden.
<scalar_expression> Ausdruck, der den zu berechnenden Wert darstellt.

Hinweis

Weitere Informationen zu Skalarausdrücken finden Sie unter Skalarausdrücke.

Beispiele

In diesem ersten Beispiel wird mithilfe einer einfachen Gleichheitsabfrage eine Teilmenge von Elementen zurückgegeben. Der Operator = wird bei der WHERE -Klausel verwendet, um einen Filter basierend auf einfacher Gleichheit zu erstellen.

SELECT VALUE {
    employeeName: e.name,
    currentTeam: e.team
}
FROM
    employees e
WHERE
    e.team = "Hospitality"
[
  {
    "employeeName": "Jordan Mitchell",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Ashley Schroeder",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Tomas Richardson",
    "currentTeam": "Hospitality"
  }
]

In diesem nächsten Beispiel besteht ein komplexerer Filter aus Skalarausdrücken.

SELECT VALUE {
    employeeName: e.name,
    vacationDaysRemaining: e.vacationDays
}
FROM
    employees e
WHERE
    e.vacationDays >= 7
[
  {
    "employeeName": "Ana Bowman",
    "vacationDaysRemaining": 10
  },
  {
    "employeeName": "Madison Butler",
    "vacationDaysRemaining": 7
  }
]

In diesem letzten Beispiel wird ein Eigenschaftsverweis auf eine boolesche Eigenschaft als Filter verwendet.

SELECT VALUE {
    employeeName: e.name,
    isPartTime: e.partTime
}
FROM
    employees e
WHERE
    e.partTime
[
  {
    "employeeName": "Riley Ramirez",
    "isPartTime": true
  },
  {
    "employeeName": "Caleb Foster",
    "isPartTime": true
  }
]

Hinweise

  • Damit ein Element zurückgegeben wird, muss ein als Filterbedingung angegebener Ausdruck mit „true“ ausgewertet werden. Nur der boolesche Wert true erfüllt die Bedingung; alle anderen Werte – undefined, null, false, ein Zahlenskalar, ein Array oder ein Objekt – erfüllen sie nicht.

  • Wenn Sie Ihren Partitionsschlüssel in die WHERE-Klausel als Teil eines Gleichheitsfilters einbeziehen, filtert Ihre Abfrage automatisch nur nach den relevanten Partitionen.

  • Sie können die folgenden unterstützten binären Operatoren verwenden:

    Operatoren Beispiele
    Arithmetik +,-,,*,/%
    Bitweise \|, &, ^, <<, >>, >>>(Null-Füllung nach rechts)
    Logisch AND, ORNOT
    Vergleich =, , !=<, >, <=, , >=<>
    Zeichenfolge \|\|(verketten)