Предложение WHERE (запрос NoSQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
WHERE
Необязательное предложение (WHERE <filter_condition>
) указывает условия, которые исходные элементы JSON должны удовлетворять запросу, чтобы включить их в результаты. Элемент JSON должен при вычислении указанных условий возвращать значение true
, чтобы он включался в результат. Слой индекса использует WHERE
предложение для определения наименьшего подмножества исходных элементов, которые могут быть частью результата.
Синтаксис
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
Description | |
---|---|
<filter_condition> |
Указывает условие, которое необходимо выполнить для возвращаемых элементов. |
<scalar_expression> |
Выражение, представляющее вычисляемое значение. |
Примечание.
Дополнительные сведения о скалярных выражениях см . в скалярных выражениях
Примеры
В первом примере используется простой запрос на равенство для возврата подмножества элементов. Оператор =
используется с WHERE
предложением для создания фильтра на основе простого равенства.
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"
}
]
В следующем примере более сложный фильтр состоит из скалярных выражений.
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
}
]
В этом последнем примере в качестве фильтра используется ссылка на свойство boolean.
SELECT VALUE {
employeeName: e.name,
isPartTime: e.partTime
}
FROM
employees e
WHERE
e.partTime
[
{
"employeeName": "Riley Ramirez",
"isPartTime": true
},
{
"employeeName": "Caleb Foster",
"isPartTime": true
}
]
Замечания
Чтобы возвращаемый элемент, выражение, указанное как условие фильтра, должно иметь значение true. Только логическое значение удовлетворяет условию, любое другое значение
true
:undefined
,null
,false
число скаляр, массив или объект не удовлетворяет условию.Если ключ секции включен в предложение в
WHERE
рамках фильтра равенства, запрос автоматически фильтрует только соответствующие секции.Можно использовать следующие поддерживаемые бинарные операторы:
Операторы Примеры Арифметические +
,-
,,*
,/
%
Побитовое \|
,&
,^
>>>
<<
>>
(нулевой заливки вправо)Логическое AND
, ,OR
NOT
Сравнение =
,!=
,<
>
<=
>=
<>
String \|\|
(сцепление)