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: