Kulcsszavak az Azure Cosmos DB for NoSQL-ben

A KÖVETKEZŐKRE VONATKOZIK: NoSQL

Az Azure Cosmos DB for NoSQL lekérdezési nyelve fenntartott kulcsszavakat tartalmaz, amelyeket a kiterjesztett funkciók lekérdezéseiben használnak.

BETWEEN

A BETWEEN kulcsszó egy logikai értéket ad vissza, amely azt jelzi, hogy a célérték két megadott érték között van-e, beleértve a értéket is.

A kulcsszót záradékkal WHERE is használhatja BETWEEN olyan lekérdezések kifejezésére, amelyek sztring- vagy numerikus értékek tartományaira szűrik az eredményeket. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben az ár és között 17.2525.50van, újra belefoglalva.

SELECT VALUE
    p.price
FROM
    products p
WHERE
    p.price BETWEEN 17.25 AND 25.50
[
  20
]

A kulcsszót a BETWEEN záradékban SELECT is használhatja, ahogy az alábbi példában is látható.

SELECT 
    (p.price BETWEEN 0 AND 10) AS booleanLessThanTen,
    p.price
FROM
    products p
[
  {
    "booleanLessThanTen": false,
    "price": 20.0
  },
  {
    "booleanLessThanTen": true,
    "price": 7.5
  }
]

Megjegyzés

A NoSQL-hez készült API-ban az ANSI SQL-sel ellentétben a tartomány-lekérdezéseket vegyes típusok tulajdonságaival fejezheti ki. Lehet például egy szám, price mint 5.0 egyes elemekben, és egy sztring, mint fifteenDollars a többiben. Ezekben az esetekben, mivel a JavaScriptben van, a két különböző típus összehasonlítása a következőt undefinederedményezi: , így az elem ki lesz hagyva.

DISTINCT

A DISTINCT kulcsszó kiküszöböli az ismétlődő elemeket az előre jelzett lekérdezési eredményekben.

Ebben a példában a lekérdezés az egyes termékkategóriák értékeit jeleníti meg. Ha két kategória egyenértékű, az eredményekben csak egyetlen előfordulás lesz visszaadva.

SELECT DISTINCT VALUE
    p.category
FROM
    products p
[
  "Accessories",
  "Tools"
]

Az értékeket akkor is kivetítheti, ha a célmező nem létezik. Ebben az esetben a mező nem létezik az egyik elemben, ezért a lekérdezés egy üres objektumot ad vissza az adott egyedi értékhez.

SELECT DISTINCT
    p.category
FROM
    products p

Az eredmény a következő:

[
  {},
  {
    "category": "Accessories"
  },
  {
    "category": "Tools"
  }
]

MINT

Logikai értéket ad vissza attól függően, hogy egy adott karaktersztring megfelel-e egy adott mintának. A minták normál karaktereket és helyettesítő karaktereket is tartalmazhatnak.

Tipp

Logikailag egyenértékű lekérdezéseket írhat a LIKE kulcsszó vagy a RegexMatch rendszerfüggvény használatával. Ugyanazt az indexkihasználtságot fogja megfigyelni, függetlenül attól, hogy melyik lehetőséget választja. A használni kívánt lehetőség kiválasztása nagyrészt a szintaktikai beállításokon alapul.

Megjegyzés

Mivel LIKE használhat indexet, érdemes létrehoznia egy tartományindexet a használatával LIKEösszehasonlítandó tulajdonságokhoz.

A LIKE karakterekkel a következő helyettesítő karakterek használhatók:

Leírás Példa
% Bármely nulla vagy több karakterből álló sztring. WHERE c.description LIKE "%SO%PS%"
_(aláhúzás) Bármely karakter. WHERE c.description LIKE"%SO_PS%"
[ ] Bármely karakter a megadott tartományon belül ([a-f]) vagy beállításban ([abcdef]). WHERE c.description LIKE "%SO[t-z]PS%"
[^] A megadott tartományon[^a-f] () vagy halmazon () belül nem található egyetlen karakter.[^abcdef] WHERE c.description LIKE "%SO[^abc]PS%"

A % karakter egyezik bármely nulla vagy több karakterből álló sztringgel. Ha például a-t % a minta elején és végén helyezi el, a következő lekérdezés az összes olyan elemet visszaadja, ahol a megadott mező a kifejezést részkarakterláncként tartalmazza:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%driver%"

Ha csak a minta végén használt karaktert % , csak a következővel kezdődő fruitleírású elemeket adná vissza:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%glove"

Hasonlóképpen, a minta elején lévő helyettesítő karakter azt jelzi, hogy az értékeket előtagként szeretné egyeztetni a megadott értékkel:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "Road%"

A NOT kulcsszó inverzként adja meg a LIKE kulcsszó kifejezésértékelésének eredményét. Ez a példa az összes olyan elemet visszaadja, amely nem felel meg a kifejezésnek LIKE .

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name NOT LIKE "%winter%"

A záradék használatával olyan mintákat kereshet, amelyek egy vagy több helyettesítő karaktert ESCAPE tartalmaznak. Ha például olyan leírásokat szeretne keresni, amelyek tartalmazzák a sztringet 20%, nem szeretné helyettesítő karakterként értelmezni a % karaktert. Ez a példa feloldó karakterként értelmezi a ^ karaktert, hogy feloldhassa a adott példányát %.

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

A helyettesítő karaktereket szögletes zárójelek közé foglalva konstans karakterekként kezelheti őket. Ha szögletes zárójelek közé foglal egy helyettesítő karaktert, eltávolítja a speciális attribútumokat. Ez a táblázat példákat tartalmaz a literális karakterekre.

Elemzett érték
LIKE "20-30[%]" 20-30%
LIKE "[_]n" _n
LIKE "[ [ ]" [
LIKE "]" ]

IN

IN A kulcsszóval ellenőrizheti, hogy egy megadott érték megfelel-e a lista bármely értékének. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben a kategória egyezik egy lista legalább egy értékével.

SELECT
    *
FROM
    products p
WHERE
    p.category IN ("Accessories", "Clothing")

Tipp

Ha felveszi a partíciókulcsot a IN szűrőbe, a lekérdezés automatikusan csak a megfelelő partíciókra szűr.

TOP

A TOP kulcsszó a lekérdezési eredmények első N számát adja vissza meghatározatlan sorrendben. Ajánlott eljárásként használja TOP a záradékot az ORDER BY eredmények első számú rendezett értékre való N korlátozásához. A két záradék kombinálása az egyetlen módja annak, hogy előre jelezze, mely sorok TOP vannak hatással.

A paraméteres TOP lekérdezésekkel használhat állandó értéket, ahogyan az alábbi példában is látható, vagy egy változó értékkel.

SELECT TOP 10
    *
FROM
    products p
ORDER BY
    p.price ASC