Udostępnij za pośrednictwem


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 oraz zapobiega przypadkowemu narażeniu danych za pośrednictwem iniekcji SQL.

Przykłady

Możesz na przykład napisać zapytanie, które przyjmuje upperPriceLimit jako parametr, i wykonać je dla różnych wartości na podstawie danych wejściowych price 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ą zapytania sparametryzowanego:

{
  "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 pod kątem żadnego typu.

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