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.50arası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 yönelik aralık sorgularını ifade edebilirsiniz. Örneğin, price bazı öğelerde olduğu gibi 5.0 bir sayı, diğer öğelerde olduğu 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 undefinedve bu nedenle öğe atlanır.

DISTINCT

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 projelemektedir. İ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 bir 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 LIKEkarşı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ık () veya küme ([^a-f][^abcdef]) içinde olmayan tek bir karakter. 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 alt dize olarak tümceciği 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 sonundaki bir % karakteri kullandıysanız, yalnızca ile fruitbaşlayan bir açıklamaya sahip öğeleri döndürebilirsiniz:

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 LIKEeş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, joker karakter olarak yorumlamak % istemezsiniz. Bu örnek, belirli bir örneğinden %kaçabilmeniz için kaçış karakteri olarak öğesini yorumlar^.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.description LIKE "%20^%%" ESCAPE "^"

Joker karakterleri sabit karakter olarak işlemek için köşeli ayraç içine alabilirsiniz. Joker karakteri köşeli ayraç içine aldığınızda, özel öznitelikleri kaldırırsınız. Bu tabloda değişmez karakter örnekleri yer almaktadır.

Ayrıştırılmış 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.TOPORDER 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