Query con parametri in Azure Cosmos DB for NoSQL
SI APPLICA A: NoSQL
Azure Cosmos DB for NoSQL supporta le query con parametri espressi dalla consueta notazione @. SQL con parametri fornisce solide capacità di gestione ed escape dell'input utente ed evita l'esposizione accidentale di dati mediante attacchi SQL injection.
Esempi
Ad esempio, è possibile scrivere una query che accetta upperPriceLimit
come parametro ed eseguirla per vari valori di price
in base all'input dell'utente.
SELECT
*
FROM
p
WHERE
(NOT p.onSale) AND
(p.price BETWEEN 0 AND @upperPriceLimit)
Questa richiesta può quindi essere inviata ad Azure Cosmos DB for NoSQL come oggetto query con parametri JSON.
{
"query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
"parameters": [
{
"name": "@upperPriceLimit",
"value": 100
}
]
}
Nell'esempio seguente viene impostato l'argomento TOP
con una query con parametri:
{
"query": "SELECT TOP @pageSize * FROM products",
"parameters": [
{
"name": "@pageSize",
"value": 10
}
]
}
I valori dei parametri possono essere qualsiasi valore JSON valido (stringhe, numeri, valori booleani, valori null, persino matrici o valori JSON annidati). Dato che Azure Cosmos DB for NoSQL è senza schema, i parametri non vengono convalidati rispetto a qualsiasi tipo.
Ecco alcuni esempi per le query con parametri in ogni SDK di Azure Cosmos DB for NoSQL: