Aracılığıyla paylaş


NoSQL için Azure Cosmos DB'de parametreli sorgular

UYGULANANLAR: NoSQL

NoSQL için Azure Cosmos DB, tanıdık @ gösterimiyle ifade edilen parametrelere sahip sorguları destekler. Parametreli SQL, kullanıcı girişinin sağlam bir şekilde işlenmesini ve kaçılmasını sağlar ve SQL ekleme yoluyla verilerin yanlışlıkla açığa çıkmasını önler.

Örnekler

Örneğin, parametre olarak alan upperPriceLimit bir sorgu yazabilir ve kullanıcı girişini price temel alan çeşitli değerler için yürütebilirsiniz.

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

Ardından bu isteği Parametreli JSON sorgu nesnesi olarak NoSQL için Azure Cosmos DB'ye gönderebilirsiniz.

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

Sonraki örnekte bağımsız değişken parametreli bir sorguyla ayarlır TOP :

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

Parametre değerleri geçerli herhangi bir JSON olabilir: dizeler, sayılar, boole'lar, null, hatta diziler veya iç içe JSON. NoSQL için Azure Cosmos DB şemasız olduğundan parametreler herhangi bir türde doğrulanmaz.

NoSQL için Her Azure Cosmos DB SDK'sında parametreli sorgu örnekleri aşağıda verilmiştir: