Udostępnij za pośrednictwem


KLAUZULA WHERE (zapytanie NoSQL)

DOTYCZY: NoSQL

Klauzula opcjonalna WHERE (WHERE <filter_condition>) określa warunki, które źródłowe elementy JSON muszą spełniać, aby zapytanie uwzględniało je w wynikach. Element JSON musi ocenić określone warunki, które true mają być brane pod uwagę w wyniku. Warstwa indeksu używa klauzuli WHERE , aby określić najmniejszy podzestaw elementów źródłowych, które mogą być częścią wyniku.

Składnia

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
opis
<filter_condition> Określa warunek, który ma zostać spełniony, aby elementy do zwrócenia.
<scalar_expression> Wyrażenie reprezentujące wartość do obliczenia.

Uwaga

Aby uzyskać więcej informacji na temat wyrażeń skalarnych, zobacz wyrażenia skalarne

Przykłady

W tym pierwszym przykładzie użyto prostego zapytania równości w celu zwrócenia podzestawu elementów. Operator = jest używany z klauzulą w celu utworzenia filtru WHERE na podstawie prostej równości.

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

W następnym przykładzie bardziej złożony filtr składa się z wyrażeń skalarnych.

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

W tym ostatnim przykładzie jako filtr jest używane odwołanie do właściwości logicznej.

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

Uwagi

  • Aby element został zwrócony, wyrażenie określone jako warunek filtru musi mieć wartość true. Tylko wartość true logiczna spełnia warunek, dowolną inną wartość: undefined, null, false, skalarną liczbę, tablicę lub obiekt nie spełnia warunku.

  • Jeśli klucz partycji zostanie uwzględniny w klauzuli jako WHERE część filtru równości, zapytanie automatycznie filtruje tylko odpowiednie partycje.

  • Możesz użyć następujących obsługiwanych operatorów binarnych:

    Operatory Przykłady
    Arytmetyka +,-,*,/,%
    Bitowe \|, &, , <<^, , >>> >>(przesunięcie w prawo od zera)
    Logiczny AND, , ORNOT
    Porównanie =, !=, , <, >, <=, , >=<>
    ciąg \|\|(połącz)