Zapytania sparametryzowane w Azure Cosmos DBParameterized queries in Azure Cosmos DB

DOTYCZY: interfejs API SQL

Azure Cosmos DB obsługuje zapytania z parametrami wyrażonymi przez znajomą @ Notation.Azure Cosmos DB supports queries with parameters expressed by the familiar @ notation. Sparametryzowane SQL zapewnia niezawodną obsługę i ucieczkę danych wejściowych użytkownika i zapobiega przypadkowemu narażeniu danych przez iniekcję SQL.Parameterized SQL provides robust handling and escaping of user input, and prevents accidental exposure of data through SQL injection.

PrzykładyExamples

Można na przykład napisać zapytanie, które przyjmuje lastName i address.state jako parametry, i wykonać je dla różnych wartości lastName i address.state na podstawie danych wejściowych użytkownika.For example, you can write a query that takes lastName and address.state as parameters, and execute it for various values of lastName and address.state based on user input.

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

Następnie można wysłać to żądanie do Azure Cosmos DB jako sparametryzowane zapytanie JSON podobne do następujących:You can then send this request to Azure Cosmos DB as a parameterized JSON query like the following:

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

Poniższy przykład ustawia argument TOP z zapytaniem sparametryzowanym:The following example sets the TOP argument with a parameterized query:

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

Wartości parametrów mogą być dowolnymi prawidłowymi wartościami JSON: String, Numbers, Boolean, null, tablice parzyste lub zagnieżdżony kod JSON.Parameter values can be any valid JSON: strings, numbers, Booleans, null, even arrays or nested JSON. Ponieważ Azure Cosmos DB jest bez schematu, parametry nie są sprawdzane względem żadnego typu.Since Azure Cosmos DB is schemaless, parameters aren't validated against any type.

Poniżej przedstawiono przykłady zapytań parametrycznych w każdym Azure Cosmos DB SDK:Here are examples for parameterized queries in each Azure Cosmos DB SDK:

Następne krokiNext steps