다음을 통해 공유


Azure Cosmos DB for NoSQL의 매개 변수화된 쿼리

적용 대상: NoSQL

Azure Cosmos DB for NoSQL은 익숙한 @ 표기법으로 표현된 매개 변수가 있는 쿼리를 지원합니다. 매개 변수가 있는 SQL은 사용자 입력의 강력한 처리 및 이스케이프를 제공하며 SQL 삽입을 통해 실수로 인한 데이터 노출을 방지합니다.

예제

예를 들어 매개 변수로 사용하는 upperPriceLimit 쿼리를 작성하고 사용자 입력을 기반으로 하는 다양한 값 price 에 대해 실행할 수 있습니다.

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

그런 다음, 이 요청을 매개 변수화된 JSON 쿼리 개체로 Azure Cosmos DB for NoSQL에 보낼 수 있습니다.

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

다음 예제에서는 매개 변수화된 쿼리를 사용하여 TOP 인수를 설정합니다.

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

매개 변수 값은 유효한 JSON(문자열, 숫자, 부울, null, 짝수 배열 또는 중첩된 JSON)일 수 있습니다. Azure Cosmos DB for NoSQL은 스키마가 없으므로 매개 변수는 임의 형식에 대해 유효성이 검사되지 않습니다.

다음은 각 Azure Cosmos DB for NoSQL SDK의 매개 변수화된 쿼리에 대한 예제입니다.