الاستعلامات ذات المعلمات في Azure Cosmos DB ل NoSQL

ينطبق على: NoSQL

يدعم Azure Cosmos DB for 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 صالح: السلاسل أو الأرقام أو القيم المنطقية أو القيم الخالية أو حتى الصفائف أو JSON المتداخلة. نظرا لأن Azure Cosmos DB ل NoSQL بلا مخطط، لا يتم التحقق من صحة المعلمات مقابل أي نوع.

فيما يلي أمثلة للاستعلامات ذات المعلمات في كل Azure Cosmos DB ل NoSQL SDK: