Dela via


WHERE-sats (NoSQL-fråga)

GÄLLER FÖR: NoSQL

Den valfria WHERE satsen (WHERE <filter_condition>) anger villkor som JSON-källobjekten måste uppfylla för att frågan ska inkludera dem i resultat. Ett JSON-objekt måste utvärdera de angivna villkor true som ska beaktas för resultatet. Indexlagret använder WHERE -satsen för att fastställa den minsta delmängden av källobjekt som kan ingå i resultatet.

Syntax

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
beskrivning
<filter_condition> Anger villkoret som ska uppfyllas för de objekt som ska returneras.
<scalar_expression> Uttryck som representerar det värde som ska beräknas.

Kommentar

Mer information om skalära uttryck finns i skalära uttryck

Exempel

Det första exemplet använder en enkel likhetsfråga för att returnera en delmängd av objekt. Operatorn = används med WHERE -satsen för att skapa ett filter baserat på enkel likhet.

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

I nästa exempel består ett mer komplext filter av skalära uttryck.

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

I det här sista exemplet används en egenskapsreferens till en boolesk egenskap som filter.

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

Kommentarer

  • För att ett objekt ska returneras måste ett uttryck som anges som ett filtervillkor utvärderas till true. Endast det booleska värdet true uppfyller villkoret, något annat värde: undefined, null, false, en talskalar, en matris eller ett objekt uppfyller inte villkoret.

  • Om du inkluderar partitionsnyckeln WHERE i -satsen som en del av ett likhetsfilter filtreras frågan automatiskt till endast relevanta partitioner.

  • Du kan använda följande binära operatorer som stöds:

    Operatorer Exempel
    Aritmetik +,-,*,/,%
    Bitvis \|, &, ^, <<, >>, >>> (nollfyllt högerskift)
    Logisk AND, , ORNOT
    Jämförelse =, !=, <, >, <=, , , >=<>
    Sträng \|\|(sammanfoga)