Compartir vía


Consultas con parámetros: lenguaje de consulta en Cosmos DB (en Azure y Fabric)

Cosmos DB (en Azure y Fabric) admite consultas con parámetros expresados por la notación @ conocida. SQL con parámetros proporciona un control sólido y escape de la entrada del usuario y evita la exposición accidental de datos a través de la inyección de CÓDIGO SQL.

Examples

Por ejemplo, puede escribir una consulta que toma upperPriceLimit como parámetro y ejecutarla para varios valores de en función de la entrada del price usuario.

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

A continuación, puede enviar esta solicitud a Cosmos DB como un objeto de consulta JSON con parámetros.

{
  "query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
  "parameters": [
    {
      "name": "@upperPriceLimit",
      "value": 100
    }
  ]
}

En este ejemplo siguiente se establece el TOP argumento con una consulta con parámetros:

{
  "query": "SELECT TOP @pageSize * FROM products",
  "parameters": [
    {
      "name": "@pageSize",
      "value": 10
    }
  ]
}

Los valores de parámetro pueden ser cualquier JSON válido: cadenas, números, booleanos, null, incluso matrices o JSON anidados. Dado que Cosmos DB no tiene esquema, los parámetros no se validan con ningún tipo.

Estos son ejemplos de consultas parametrizadas en cada SDK de Cosmos DB: