Bagikan melalui


Kueri berparameter - Bahasa kueri di Cosmos DB (di Azure dan Fabric)

Cosmos DB (di Azure dan Fabric) mendukung kueri dengan parameter yang dinyatakan oleh notasi @ yang familier. SQL berparameter menyediakan penanganan dan pelepasan input pengguna yang kuat, dan mencegah paparan data yang tidak disengaja melalui injeksi SQL.

Examples

Misalnya, Anda dapat menulis kueri yang mengambil upperPriceLimit sebagai parameter, dan menjalankannya untuk berbagai nilai price berdasarkan input pengguna.

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

Anda kemudian dapat mengirim permintaan ini ke Cosmos DB sebagai objek kueri JSON berparameter.

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

Contoh berikutnya ini mengatur TOP argumen dengan kueri berparameter:

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

Nilai parameter dapat berupa JSON yang valid: string, angka, boolean, null, bahkan array atau JSON berlapis. Karena Cosmos DB tidak memiliki skema, parameter tidak divalidasi terhadap jenis apa pun.

Berikut adalah contoh untuk kueri berparameter di setiap Cosmos DB SDK: