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)
然後,您可以將此要求傳送給 Azure Cosmos DB for NoSQL 來作為參數化 JSON 查詢物件。
{
"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 中的參數化查詢範例: