Parametrisierte Abfragen in Azure Cosmos DB for NoSQL
GILT FÜR: NoSQL
Azure Cosmos DB for NoSQL unterstützt Abfragen mit Parametern, die durch die bekannte @-Notation ausgedrückt werden. Parametrisiertes SQL bietet stabile Fehlerbehandlung und Schutz von Benutzereingaben und verhindert eine versehentliche Offenlegung von Daten durch SQL-Injektion.
Beispiele
Sie können z. B. eine Abfrage erstellen, die upperPriceLimit
als Parameter verwendet, und sie für unterschiedliche Werte von price
auf Grundlage von Benutzereingaben ausführen.
SELECT
*
FROM
p
WHERE
(NOT p.onSale) AND
(p.price BETWEEN 0 AND @upperPriceLimit)
Sie können diese Anforderung dann als parametrisiertes JSON-Abfrageobjekt an Azure Cosmos DB for NoSQL senden.
{
"query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
"parameters": [
{
"name": "@upperPriceLimit",
"value": 100
}
]
}
Im folgenden Beispiel wird das Argument TOP
mit einer parametrisierten Abfrage festgelegt:
{
"query": "SELECT TOP @pageSize * FROM products",
"parameters": [
{
"name": "@pageSize",
"value": 10
}
]
}
Parameterwerte können alle gültigen JSON-Werte sein: Zeichenfolgen, Zahlen, boolesche Werte, Null, gerade Arrays oder verschachteltes JSON. Da Azure Cosmos DB for NoSQL schemalos ist, werden Parameter für keinen Typ überprüft.
Hier sind Beispiele für parametrisierte Abfragen im jeweiligen SDK für Azure Cosmos DB for NoSQL: