Share via


Geparameteriseerde query's in Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Azure Cosmos DB voor NoSQL ondersteunt query's met parameters die worden uitgedrukt in de vertrouwde @-notatie. Geparameteriseerde SQL biedt robuuste verwerking en escape van gebruikersinvoer en voorkomt onbedoelde blootstelling van gegevens via SQL-injectie.

Voorbeelden

U kunt bijvoorbeeld een query schrijven die en address.state als parameters gebruikt lastName en deze uitvoeren voor verschillende waarden van en address.state op basis van lastName gebruikersinvoer.

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

U kunt deze aanvraag vervolgens verzenden naar Azure Cosmos DB for NoSQL als een JSON-queryobject met parameters.

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

In dit volgende voorbeeld wordt het TOP argument ingesteld met een query met parameters:

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

Parameterwaarden kunnen elke geldige JSON zijn: tekenreeksen, getallen, booleaanse waarden, null, even matrices of geneste JSON. Omdat Azure Cosmos DB voor NoSQL schemaloos is, worden parameters niet gevalideerd op basis van welk type dan ook.

Hier volgen voorbeelden van geparameteriseerde query's in elke Azure Cosmos DB for NoSQL SDK: