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: