Zapytania sparametryzowane w usłudze Azure Cosmos DB for NoSQL

DOTYCZY: NoSQL

Usługa Azure Cosmos DB for NoSQL obsługuje zapytania z parametrami wyrażonymi za pomocą znanej notacji @. Sparametryzowany program SQL zapewnia niezawodną obsługę i ucieczkę danych wejściowych użytkownika i zapobiega przypadkowemu narażeniu danych przez wstrzyknięcie kodu SQL.

Przykłady

Na przykład możesz napisać zapytanie, które przyjmuje lastName i address.state jako parametry, i wykonać je dla różnych wartości i address.state na podstawie danych wejściowych lastName użytkownika.

SELECT
    *
FROM
    p
WHERE
    (NOT p.onSale) AND
    (p.price BETWEEN 0 AND @upperPriceLimit)

Następnie możesz wysłać to żądanie do usługi Azure Cosmos DB for NoSQL jako sparametryzowanego obiektu zapytania JSON.

{
  "query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
  "parameters": [
    {
      "name": "@upperPriceLimit",
      "value": 100
    }
  ]
}

W następnym przykładzie TOP argument jest ustawiany za pomocą sparametryzowanego zapytania:

{
  "query": "SELECT TOP @pageSize * FROM products",
  "parameters": [
    {
      "name": "@pageSize",
      "value": 10
    }
  ]
}

Wartości parametrów mogą być dowolnym prawidłowym kodem JSON: ciągami, liczbami, wartościami logicznymi, wartościami null, nawet tablicami lub zagnieżdżonymi kodami JSON. Ponieważ usługa Azure Cosmos DB for NoSQL jest bez schematu, parametry nie są weryfikowane względem żadnego typu.

Oto przykłady zapytań sparametryzowanych w każdym zestawie SDK usługi Azure Cosmos DB for NoSQL: