Consultas parametrizadas no Azure Cosmos DB for NoSQL
APLICA-SE A: NoSQL
O Azure Cosmos DB for NoSQL dá suporte a consultas com parâmetros expressos pela conhecida notação @. A SQL parametrizada oferece recursos robustos de manuseio e saída das entradas de usuário e evita a exposição acidental de dados por meio de uma injeção SQL.
Exemplos
Por exemplo, o senhor pode escrever uma consulta que recebe upperPriceLimit
como parâmetro e executá-la para vários valores de price
com base na entrada do usuário.
SELECT
*
FROM
p
WHERE
(NOT p.onSale) AND
(p.price BETWEEN 0 AND @upperPriceLimit)
Em seguida, você pode enviar essa solicitação para o Azure Cosmos DB for NoSQL como um objeto de consulta JSON parametrizado.
{
"query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
"parameters": [
{
"name": "@upperPriceLimit",
"value": 100
}
]
}
O exemplo a seguir define o argumento TOP
com uma consulta parametrizada:
{
"query": "SELECT TOP @pageSize * FROM products",
"parameters": [
{
"name": "@pageSize",
"value": 10
}
]
}
Os valores dos parâmetros podem ser qualquer JSON válido: cadeias de caracteres, números, boolianos, nulos ou até mesmo matrizes e JSON aninhados. Como o Azure Cosmos DB for NoSQL é sem esquema, os parâmetros não são validados com relação a nenhum tipo.
Aqui temos exemplos de consultas parametrizadas em cada SDK do Azure Cosmos DB for NoSQL: