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: