WHERE yan tümcesi (NoSQL sorgusu)
UYGULANANLAR: NoSQL
İsteğe bağlı WHERE
yan tümcesi (WHERE <filter_condition>
), sorgunun sonuçlara dahil etmesi için kaynak JSON öğelerinin karşılaması gereken koşulları belirtir. Bir JSON öğesinin, sonuç için dikkate alınması için true
belirtilen koşulları değerlendirmesi gerekir. Dizin katmanı, sonucun WHERE
parçası olabilecek kaynak öğelerin en küçük alt kümesini belirlemek için yan tümcesini kullanır.
Sözdizimi
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
Açıklama | |
---|---|
<filter_condition> |
Döndürülecek öğeler için karşılanacak koşulu belirtir. |
<scalar_expression> |
Hesaplanacak değeri temsil eden ifade. |
Not
Skaler ifadeler hakkında daha fazla bilgi için bkz . skaler ifadeler
Örnekler
Bu ilk örnek, öğelerin bir alt kümesini döndürmek için basit bir eşitlik sorgusu kullanır. işleci =
, basit eşitliğe dayalı bir filtre oluşturmak için yan tümcesiyle birlikte WHERE
kullanılır.
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"
}
]
Bu sonraki örnekte, daha karmaşık bir filtre skaler ifadelerden oluşur.
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
}
]
Bu son örnekte, filtre olarak boole özelliğine bir özellik başvurusu kullanılır.
SELECT VALUE {
employeeName: e.name,
isPartTime: e.partTime
}
FROM
employees e
WHERE
e.partTime
[
{
"employeeName": "Riley Ramirez",
"isPartTime": true
},
{
"employeeName": "Caleb Foster",
"isPartTime": true
}
]
Açıklamalar
Bir öğenin döndürülmesi için, filtre koşulu olarak belirtilen bir ifadenin true olarak değerlendirilmesi gerekir. Koşulu yalnızca boole değeri
true
karşılar; diğer herhangi bir değer:undefined
,null
,false
, sayı skaler, dizi veya nesne koşulu karşılamaz.Bölüm anahtarınızı
WHERE
bir eşitlik filtresinin parçası olarak yan tümcesine eklerseniz, sorgunuz otomatik olarak yalnızca ilgili bölümlere filtre ekler.Aşağıdaki desteklenen ikili işleçleri kullanabilirsiniz:
İşleçler Örnekler Aritmetik +
,-
,,*
,/
%
Bitsel \|
,&
,^
,<<
, ,>>
,>>>
(sağ kaydırmayı sıfır doldurma)Mantıklı AND
,OR
,NOT
Karşılaştırma =
,!=
,<
, ,>
,<=
,>=
,<>
Dize \|\|
(birleştirme)