Consultas parametrizadas no Azure Cosmos DB para NoSQL

APLICA-SE A: NoSQL

O Azure Cosmos DB para NoSQL suporta consultas com parâmetros expressos pela notação @ familiar. O SQL parametrizado fornece um processamento robusto e uma fuga da entrada do utilizador e impede a exposição acidental de dados através da injeção de SQL.

Exemplos

Por exemplo, pode escrever uma consulta que utiliza lastName e address.state como parâmetros, e executá-la para vários valores de e address.state com base na entrada do lastName utilizador.

SELECT
    *
FROM
    p
WHERE
    (NOT p.onSale) AND
    (p.price BETWEEN 0 AND @upperPriceLimit)

Em seguida, pode enviar este pedido para o Azure Cosmos DB para 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
    }
  ]
}

Este exemplo seguinte define o TOP argumento 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, números, booleanos, nulos, até mesmo matrizes ou JSON aninhado. Uma vez que o Azure Cosmos DB para NoSQL não tem esquemas, os parâmetros não são validados em relação a nenhum tipo.

Eis exemplos de consultas parametrizadas em cada SDK do Azure Cosmos DB para NoSQL: