NoSQL için Azure Cosmos DB'de anahtar sözcükler
UYGULANANLAR: NoSQL
NoSQL için Azure Cosmos DB'nin sorgu dili, genişletilmiş işlevsellik için sorgularda kullanılan bir dizi ayrılmış anahtar sözcük içerir.
BETWEEN
anahtar sözcüğü, BETWEEN
hedef değerin belirtilen iki değer (dahil) arasında olup olmadığını belirten bir boole değeri olarak değerlendirilir.
Dize veya sayısal değer aralıklarına göre sonuçları filtreleyen sorguları ifade etmek için bir WHERE
yan tümcesi ile anahtar sözcüğünü kullanabilirsinizBETWEEN
. Örneğin, aşağıdaki sorgu, fiyatın ile 25.50
arasında 17.25
olduğu tüm öğeleri döndürür.
SELECT VALUE
p.price
FROM
products p
WHERE
p.price BETWEEN 17.25 AND 25.50
[
20
]
Aşağıdaki örnekte olduğu gibi yan tümcesinde SELECT
anahtar sözcüğünü de kullanabilirsinizBETWEEN
.
SELECT
(p.price BETWEEN 0 AND 10) AS booleanLessThanTen,
p.price
FROM
products p
[
{
"booleanLessThanTen": false,
"price": 20.0
},
{
"booleanLessThanTen": true,
"price": 7.5
}
]
Not
NoSQL API'sinde, ANSI SQL'in aksine, karma türlerin özelliklerine karşı aralık sorgularını ifade edebilirsiniz. Örneğin, price
bazı öğelerdeki gibi 5.0
bir sayı ve diğerleri gibi fifteenDollars
bir dize olabilir. Bu gibi durumlarda, JavaScript'te olduğu gibi, iki farklı tür arasındaki karşılaştırma ile sonuçlanır undefined
, bu nedenle öğe atlanır.
FARKLI
anahtar sözcüğü, DISTINCT
öngörülen sorgu sonuçlarında yinelenenleri ortadan kaldırır.
Bu örnekte sorgu, her ürün kategorisi için değerleri projeler. İki kategori eşdeğerse, sonuçlarda yalnızca tek bir oluşum döndürülüyordur.
SELECT DISTINCT VALUE
p.category
FROM
products p
[
"Accessories",
"Tools"
]
Hedef alan mevcut olmasa bile değerleri de yansıtabilirsiniz. Bu durumda, alan öğelerden birinde yoktur, bu nedenle sorgu söz konusu benzersiz değer için boş bir nesne döndürür.
SELECT DISTINCT
p.category
FROM
products p
Sonuçlar:
[
{},
{
"category": "Accessories"
},
{
"category": "Tools"
}
]
LIKE
Belirli bir karakter dizesinin belirtilen desenle eşleşip eşleşmediğine bağlı olarak boole değeri döndürür. Desen normal karakterler ve joker karakterler içerebilir.
İpucu
Anahtar sözcüğünü veya RegexMatch
sistem işlevini kullanarak LIKE
mantıksal olarak eşdeğer sorgular yazabilirsiniz. Hangi seçeneği belirlediğinizden bağımsız olarak aynı dizin kullanımını gözlemlersiniz. Hangi seçeneğin kullanılacağı büyük ölçüde söz dizimi tercihine bağlıdır.
Not
Dizin LIKE
kullanabileceğinden, kullanarak LIKE
karşılaştırdığınız özellikler için bir aralık dizini oluşturmanız gerekir.
LIKE ile aşağıdaki joker karakterleri kullanabilirsiniz:
Açıklama | Örnek | |
---|---|---|
% |
Sıfır veya daha fazla karakterden oluşan herhangi bir dize. | WHERE c.description LIKE "%SO%PS%" |
_ (alt çizgi) |
Herhangi bir tek karakter. | WHERE c.description LIKE"%SO_PS%" |
[ ] |
Belirtilen aralık () veya küme ([a-f] [abcdef] ) içindeki herhangi bir tek karakter. |
WHERE c.description LIKE "%SO[t-z]PS%" |
[^] |
Belirtilen aralıkta ([^a-f] ) veya ayarda olmayan herhangi bir tek karakter ([^abcdef] ). |
WHERE c.description LIKE "%SO[^abc]PS%" |
Karakter, %
sıfır veya daha fazla karakterden oluşan herhangi bir dizeyle eşleşir. Örneğin, desenin başına ve sonuna bir %
yerleştirerek, aşağıdaki sorgu belirtilen alanın tümceciği alt dize olarak içerdiği tüm öğeleri döndürür:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "%driver%"
Yalnızca desenin sonunda bir %
karakter kullandıysanız, yalnızca ile fruit
başlayan bir açıklamaya sahip öğeleri döndürürsiniz:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "%glove"
Benzer şekilde, desenin başındaki joker karakter, değerleri belirtilen değerle ön ek olarak eşleştirmek istediğinizi gösterir:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "Road%"
anahtar NOT
sözcüğü, anahtar sözcüğün ifade değerlendirmesinin LIKE
sonucunu tersler. Bu örnek, ifadeyle LIKE
eşleşmeyen tüm öğeleri döndürür.
SELECT VALUE
p.name
FROM
products p
WHERE
p.name NOT LIKE "%winter%"
yan tümcesini ESCAPE
kullanarak bir veya daha fazla joker karakter içeren desenleri arayabilirsiniz. Örneğin, dizesini 20%
içeren açıklamaları aramak istiyorsanız, öğesini joker karakter olarak yorumlamak %
istemezsiniz. Bu örnek, ^
kaçış karakteri olarak yorumlar, böylece belirli bir örneğinden %
kaçabilirsiniz.
SELECT VALUE
p.name
FROM
products p
WHERE
p.description LIKE "%20^%%" ESCAPE "^"
Joker karakterleri köşeli ayraç içine alıp bunları değişmez karakter olarak değerlendirebilirsiniz. Joker karakteri köşeli ayraç içine aldığınızda, özel öznitelikleri kaldırırsınız. Bu tablo değişmez karakter örnekleri içerir.
Ayrıştırılan değer | |
---|---|
LIKE "20-30[%]" |
20-30% |
LIKE "[_]n" |
_n |
LIKE "[ [ ]" |
[ |
LIKE "]" |
] |
IN
Belirtilen değerin IN
listedeki herhangi bir değerle eşleşip eşleşmediğini denetlemek için anahtar sözcüğünü kullanın. Örneğin, aşağıdaki sorgu, kategorinin listedeki değerlerden en az biriyle eşleştiği tüm öğeleri döndürür.
SELECT
*
FROM
products p
WHERE
p.category IN ("Accessories", "Clothing")
İpucu
Bölüm anahtarınızı filtreye IN
eklerseniz, sorgunuz otomatik olarak yalnızca ilgili bölümlere göre filtrelenir.
TOP
anahtar TOP
sözcüğü, ilk N
sayıda sorgu sonucunu tanımsız bir sırada döndürür. En iyi yöntem olarak, sonuçları ilk N
sıralı değer sayısıyla sınırlamak için yan tümcesiyle kullanın.TOP
ORDER BY
Bu iki yan tümceyi birleştirmek, hangi satırların TOP
etkileyeceğini tahmin edilebilir şekilde belirtmenin tek yoludur.
Aşağıdaki örnekte olduğu gibi sabit bir değerle veya parametreli sorgular kullanarak değişken değerle kullanabilirsiniz TOP
.
SELECT TOP 10
*
FROM
products p
ORDER BY
p.price ASC