حد الإزاحة (استعلام NoSQL)

ينطبق على: NoSQL

OFFSET LIMIT العبارة عبارة اختيارية لتخطيها ثم أخذ بعض القيم من الاستعلام. العدد OFFSET والعدد LIMIT مطلوبان في عبارة OFFSET LIMIT.

عند OFFSET LIMIT استخدام مع عبارة ORDER BY ، يتم إنتاج مجموعة النتائج عن طريق التخطي وأخذ القيم المطلوبة. إذا لم يتم استخدام أي ORDER BY عبارة، فإنها تؤدي إلى ترتيب محدد للقيم.

بناء الجملة

OFFSET <offset_amount> LIMIT <limit_amount>

الوسيطات

‏‏الوصف
<offset_amount> يُحدد العدد الصحيح من العناصر التي يجب أن تتخطاها مجموعة نتائج الاستعلام.
<limit_amount> تحديد عدد صحيح من العناصر التي يجب أن تتضمنها نتائج الاستعلام.

الأمثلة

على سبيل المثال في هذا القسم، يتم استخدام هذه المجموعة المرجعية من العناصر. يتضمن كل عنصر خاصية name .

[
  {
    "name": "Sawyer Miller",
    "team": "Leadership team"
  },
  {
    "name": "Jennifer Wilkins",
    "team": "Leadership team"
  },
  {
    "name": "Hannah Haynes",
    "team": "Leadership team"
  },
  {
    "name": "Isaac Talbot",
    "team": "Leadership team"
  },
  {
    "name": "Riley Johnson",
    "team": "Leadership team"
  }
]

إشعار

في بيانات JSON الأصلية، لا يتم فرز العناصر.

يتضمن المثال الأول استعلاما يقوم بإرجاع الخاصية name فقط من كافة العناصر التي تم فرزها بترتيب أبجدي.

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
[
  {
    "name": "Hannah Haynes"
  },
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  },
  {
    "name": "Sawyer Miller"
  }
]

يتضمن هذا المثال التالي استعلاما باستخدام OFFSET LIMIT عبارة لتخطي العنصر الأول. يتم تعيين الحد إلى عدد العناصر في الحاوية لإرجاع كافة القيم المتبقية المحتملة. في هذا المثال، يتخطى الاستعلام عنصرا واحدا، ويرجع الأربعة المتبقية (من أصل خمسة).

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
OFFSET 1 LIMIT 5
[
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  },
  {
    "name": "Sawyer Miller"
  }
]

يتضمن هذا المثال الأخير استعلاما يستخدم OFFSET LIMIT عبارة لإرجاع مجموعة فرعية من العناصر المطابقة عن طريق تخطي عنصر واحد وأخذ العناصر الثلاثة التالية.

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
OFFSET 1 LIMIT 3
[
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  }
]

الملاحظات

  • كل من عدد OFFSETوعددLIMITمطلوبان في العبارةOFFSET LIMIT. إذا تم استخدام العبارة الاختياريةORDER BY، يتم إنتاج مجموعة النتائج عن طريق تخطي القيم المُرتبة. وإلا، يقوم الاستعلام بإرجاع ترتيب ثابت للقيم.
  • تزداد تكلفة وحدة الطلب للاستعلام مع OFFSET LIMIT زيادة عدد المصطلحات التي يتم إزاحتها. بالنسبة للاستعلامات التي تحتوي علىصفحات متعددة من النتائج، نوصي عادة باستخدامرموز المتابعة المميزة. رموز المتابعة المميزة هي "إشارة مرجعية" للمكان الذي يمكن أن يستأنف فيه الاستعلام لاحقًا. إذا كنت تستخدم OFFSET LIMIT، فلا توجد "إشارة مرجعية". إذا أردت إرجاع الصفحة التالية للاستعلام، يجب أن تبدأ من البداية.
  • يجب استخدامOFFSET LIMITالحالات التي ترغب فيها أن تتخطى العناصر بالكامل وحفظ موارد العميل. على سبيل المثال، يجب استخدامOFFSET LIMIT إذا كنت ترغب في التخطي إلي نتيجة الاستعلام 1000 ولا تحتاج إلى عرض النتائج من 1 إلى 999. على الخلفية، OFFSET LIMIT لا يزال يقوم بتحميل كل عنصر، بما في ذلك العناصر التي تم تخطيها. يتم قياس ميزة الأداء في تقليل موارد العميل عن طريق تجنب معالجة العناصر غير المطلوبة.