Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Azure Cosmos DB для NoSQL поддерживает запросы с параметрами, выраженными знакомой нотацией @. Параметризованный SQL обеспечивает надежную обработку и экранирование пользовательского ввода, а также предотвращает случайное раскрытие данных через внедрение кода SQL.
Примеры
Например, можно написать запрос, который принимает upperPriceLimit
в качестве параметра, и выполнить его для различных значений price
на основе входных данных пользователя.
SELECT
*
FROM
p
WHERE
(NOT p.onSale) AND
(p.price BETWEEN 0 AND @upperPriceLimit)
Затем этот запрос можно отправить в Azure Cosmos DB для NoSQL в качестве параметризованного объекта запроса JSON.
{
"query": "SELECT * FROM p WHERE (NOT p.onSale) AND (p.price BETWEEN 0 AND @upperPriceLimit)",
"parameters": [
{
"name": "@upperPriceLimit",
"value": 100
}
]
}
Следующий пример задает TOP
аргумент с параметризованным запросом:
{
"query": "SELECT TOP @pageSize * FROM products",
"parameters": [
{
"name": "@pageSize",
"value": 10
}
]
}
Значения параметров могут быть любым допустимым JSON: строками, числами, логическими значениями, null, а также массивами или вложенными JSON. Поскольку Azure Cosmos DB для NoSQL не использует схему, параметры не проверяются на соответствие какому-либо типу.
Ниже приведены примеры параметризованных запросов в каждом пакете SDK Azure Cosmos DB для NoSQL: