Parametrizované dotazy ve službě Azure Cosmos DB for NoSQL
PLATÍ PRO: NoSQL
Azure Cosmos DB for NoSQL podporuje dotazy s parametry vyjádřenými známým zápisem @ . Parametrizovaný SQL poskytuje robustní zpracování a únik uživatelských vstupů a zabraňuje náhodnému odhalení dat prostřednictvím injektáže SQL.
Příklady
Můžete například napsat dotaz, který přijímá lastName
parametry a address.state
, a spustit ho lastName
pro různé hodnoty a address.state
na základě vstupu uživatele.
SELECT
*
FROM
p
WHERE
(NOT p.onSale) AND
(p.price BETWEEN 0 AND @upperPriceLimit)
Tento požadavek pak můžete odeslat do služby Azure Cosmos DB for NoSQL jako parametrizovaný objekt dotazu JSON.
{
"query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
"parameters": [
{
"name": "@upperPriceLimit",
"value": 100
}
]
}
Tento další příklad nastaví TOP
argument pomocí parametrizovaného dotazu:
{
"query": "SELECT TOP @pageSize * FROM products",
"parameters": [
{
"name": "@pageSize",
"value": 10
}
]
}
Hodnoty parametrů můžou být libovolný platný JSON: řetězce, čísla, logické hodnoty, hodnoty null, sudé pole nebo vnořené json. Vzhledem k tomu, že azure Cosmos DB for NoSQL je bez schématu, parametry se neověřují pro žádný typ.
Tady jsou příklady parametrizovaných dotazů v každé sadě SDK služby Azure Cosmos DB for NoSQL: