Azure Cosmos DB 中的參數化查詢

適用於: SQL API

Azure Cosmos DB 支援以熟悉 @ 標記法表示的參數查詢。 參數化 SQL 可提供穩固的使用者輸入處理和植入,並防止透過 SQL 資料隱碼意外地公開資料。

範例

例如,您可以撰寫採用 lastNameaddress.state 做為參數的查詢,並 lastName 根據使用者輸入來執行和的不同值 address.state

    SELECT *
    FROM Families f
    WHERE f.lastName = @lastName AND f.address.state = @addressState

然後,您可以將此要求傳送給 Azure Cosmos DB,作為參數化的 JSON 查詢,如下所示:

    {
        "query": "SELECT * FROM Families f WHERE f.lastName = @lastName AND f.address.state = @addressState",
        "parameters": [
            {"name": "@lastName", "value": "Wakefield"},
            {"name": "@addressState", "value": "NY"},
        ]
    }

下列範例會使用參數化查詢來設定 TOP 引數:

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

參數值可以是任何有效的 JSON:字串、數位、布林值、null、甚至是陣列或嵌套 JSON。 因為 Azure Cosmos DB 無架構,所以不會對任何類型驗證參數。

以下是每個 Azure Cosmos DB SDK 中參數化查詢的範例:

後續步驟