Sdílet prostřednictvím


Klauzule WHERE (dotaz NoSQL)

PLATÍ PRO: NoSQL

Volitelná WHERE klauzule (WHERE <filter_condition>) určuje podmínky, které musí zdrojové položky JSON splňovat, aby dotaz zahrnul do výsledků. Položka JSON musí vyhodnotit zadané podmínky, které se true mají považovat za výsledek. Vrstva indexu WHERE pomocí klauzule určí nejmenší podmnožinu zdrojových položek, které mohou být součástí výsledku.

Syntaxe

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Popis
<filter_condition> Určuje podmínku, která má být splněna, aby se položky vrátily.
<scalar_expression> Výraz představující hodnotu, která se má vypočítat.

Poznámka:

Další informace o skalárních výrazech najdete v tématu skalární výrazy.

Příklady

Tento první příklad používá jednoduchý dotaz rovnosti k vrácení podmnožina položek. Operátor = se používá s WHERE klauzulí k vytvoření filtru na základě jednoduché rovnosti.

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

V tomto dalším příkladu se složitější filtr skládá ze skalárních výrazů.

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

V tomto posledním příkladu se jako filtr použije odkaz na logickou vlastnost.

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

Poznámky

  • Aby bylo možné vrátit položku, musí být výraz zadaný jako podmínka filtru vyhodnocen jako true. Podmínku splňuje pouze logická hodnota, jakákoli jiná hodnota true : undefined, null, , falsečíselný skalár, pole nebo objekt nesplňuje podmínku.

  • Pokud do klauzule zahrnete klíč oddílu WHERE jako součást filtru rovnosti, dotaz automaticky filtruje jenom relevantní oddíly.

  • Můžete použít následující podporované binární operátory:

    Operátory Příklady
    Aritmetika +,-,*,/,%
    Bitový \|, &, ^, <<, , >>, >>> (posun doprava s nulovou výplní)
    Logický AND, , ORNOT
    Porovnání =, !=, <, >, <=, , >=<>
    Řetězec \|\|(zřetězení)