ORDER BY (استعلام NoSQL)

ينطبق على: NoSQL

تحدد عبارةORDER BY الاختيارية ترتيب الفرز للنتائج التي يتم إرجاعها بواسطة الاستعلام.

بناء الجملة

ORDER BY <sort_specification>  
<sort_specification> ::= <sort_expression> [, <sort_expression>]  
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]

الوسيطات

‏‏الوصف
<sort_specification> لتحديد خاصية أو تعبير يتم فرز مجموعة نتائج الاستعلام عليه. يمكن تحديد عمود فرز كاسم أو اسم مستعار للخاصية. يمكن تحديد خصائص متعددة. يجب أن تكون أسماء الخصائص فريدة. يحدد تسلسل خصائص الفرز في عبارة ORDER BY تنظيم مجموعة النتائج التي تم فرزها. أي، يتم فرز مجموعة النتائج حسب الخاصية الأولى ثم يتم فرز القائمة التي تم ترتيبها حسب الخاصية الثانية، وهكذا. يجب أن تتوافق أسماء الخصائص المشار إليها في عبارة ORDER BY مع أحد الخصائص في قائمة التحديد أو خاصية محددة في المجموعة المحددة في عبارة FROM دون أي غموض.
<sort_expression> لتحديد خاصية أو أكثر أو تعبيرات يتم فرز مجموعة نتائج الاستعلام وفقاً لها.
<scalar_expression> التعبير الذي يمثل القيمة المراد حسابها.
ASC أو DESC لتحديد أنه يجب فرز القيم الموجودة في العمود المحدد بترتيب تصاعدي أو تنازلي. يتم فرز ASC من القيمة الأدنى إلى القيمة الأعلى. يتم فرز DESC من أعلى قيمة إلى أدنى قيمة. إذا لم يتم تحديد هذه الوسيطة، ASC (تصاعدي) هو ترتيب الفرز الافتراضي. null يتم التعامل مع القيم كأدنى قيم ممكنة.

إشعار

لمزيد من المعلومات حول التعبيرات العددية، راجع التعبيرات العددية

الأمثلة

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

[
  {
    "name": {
      "first": "Casey",
      "last": "Jensen"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Amari",
      "last": "Rivera"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Kayla",
      "last": "Lewis"
    },
    "team": "Human resources"
  }
]

في هذا المثال الأول، ORDER BY يتم استخدام عبارة لفرز حقل حسب ترتيب الفرز الافتراضي، تصاعدي.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last
[
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  }
]

في هذا المثال التالي، يتم تحديد ترتيب الفرز بشكل صريح ليكون تنازليا.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC
[
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  }
]

في هذا المثال النهائي، يتم فرز العناصر باستخدام حقلين، بترتيب معين باستخدام ترتيب محدد بشكل صريح. يتطلب الاستعلام الذي يفرز باستخدام حقلين أو أكثر فهرسا مركبا.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC,
    e.name.first ASC

الملاحظات

  • الاستعلامات مع ORDER BY إرجاع كافة العناصر، بما في ذلك العناصر التي لم يتم فيها تعريف الخاصية في عبارة ORDER BY. عادة، لا يمكنك التحكم في الترتيب الذي تظهر به أنواع مختلفة undefined في النتائج. للتحكم في ترتيب فرز القيم غير المعرفة، قم بتعيين أي undefined خصائص قيمة عشوائية للتأكد من فرزها إما قبل القيم المعرفة أو بعدها.
  • ORDER BY تتطلب العبارة أن يتضمن نهج الفهرسة فهرسا للحول التي يتم فرزها. يدعم وقت تشغيل الاستعلام الفرز مقابل اسم خاصية أو خصائص حوسبة. يدعم وقت التشغيل أيضا خصائص متعددة ORDER BY . لتشغيل استعلام بخصائص متعددةORDER BY، حدد فهرسا مركبا على الحقول التي يتم فرزها.
  • إذا كانت الخصائص التي يتم فرزها لبعض undefined العناصر وتريد استردادها في ORDER BY استعلام، فيجب تضمين هذا المسار بشكل صريح في الفهرس. لا يسمح نهج الفهرسة الافتراضي باسترداد العناصر حيث تكون undefinedخاصية الفرز .