نتائج استعلام فرز MongoDB

Ntayj Ast Lam Frz Mongodb



تعطي جميع أنظمة قواعد البيانات تقريبًا الأولوية لفرز البيانات قبل استرجاعها ، مما يميزها عن طرق تخزين البيانات الأخرى. لدى MongoDB أيضًا طرق مختلفة لتحديد كيفية فرز البيانات. في الغالب ، نستخدم طريقة الفرز () لتحديد التسلسل الذي يظهر به المستند. يتم تمرير ترتيب التسلسل كمعامل لطريقة الفرز (). غالبًا ما يتبع الحقل أو أكثر التي تتكون منها طريقة الفرز () إما قيمة '1' أو '-1'. تجعل طريقة sort () الاستعلام أكثر قابلية للقراءة ، مما يحسن فهم مجموعة محددة.

كيف يقوم MongoDB بفرز نتائج الاستعلام؟

تأخذ طريقة الفرز الحقل والقيمة المرتبطة به كمعامل واحد. تقبل طريقة الفرز المعلمات بتنسيق JSON مثل {Field: Value}. يمكن أيضًا إدخال الحقول والقيم المتعددة في طريقة الفرز () للحصول على المستندات التي تم فرزها من المجموعة. انظر إلى المستند التالي الذي أدخلنا فيه العديد من المستندات الأخرى في قاعدة بياناتنا. اسم قاعدة بيانات MongoDB هذه هو 'الموظفون'. تحتوي مجموعة 'الموظفين' على كافة المعلومات الخاصة بالموظفين الموضحة أدناه.

db.Employees.insertMany ([
{
'الاسم': 'روبرت' ،
'DOB': '14-05-1993'،
'الجنس': 'ذكر'،
'البريد الإلكتروني': ' [بريد إلكتروني محمي] '،
'القسم': 'Securtiy'،
'الراتب': 5000
} ،
{
'الاسم': 'كايل'،
'DOB': '31-05-1999'،
'الجنس': 'أنثى'،
'البريد الإلكتروني': ' [بريد إلكتروني محمي] '،
'القسم': 'IT'،
'الراتب': 6200
} ،
{
'الاسم': 'ماثيو' ،
'DOB': '26-04-1993'،
'الجنس': 'ذكر'،
'البريد الإلكتروني': ' [بريد إلكتروني محمي] '،
'القسم': 'الحسابات'،
'الراتب': 3500
} ،
{
'الاسم': 'كيفن'،
'DOB': '14-07-1991'،
'الجنس': 'ذكر'،
'البريد الإلكتروني': ' [بريد إلكتروني محمي] '،
'القسم': 'الأمن' ،
'الراتب': 4500
} ،

{
'الاسم': 'جوليا' ،
'DOB': '09-12-2000'،
'الجنس': 'أنثى'،
'البريد الإلكتروني': ' [بريد إلكتروني محمي] '،
'القسم': 'IT'،
'الراتب': 2500
}
])

يتم إدراج مجموعة 'الموظف' مع المستندات المقدمة التي يظهر تأكيدها في الإخراج التالي. سنستخدم مستند المجموعة هذا لإظهار وظائف نتائج استعلام الفرز.









المثال رقم 1: مجموعة MongoDB غير مصنفة

عندما يتم تنفيذ استعلام البحث باستخدام طريقة find () ، فإنه يعطي دائمًا مجموعة غير مرتبة من المستندات. يمكن أن يكون هذا أكثر وضوحًا مع نتائج الاستعلام الواردة أدناه.



> db.Employees.find ({}، {_ id: 0})

هنا ، لدينا استعلام عن مجموعة 'الموظف' باستخدام طريقة find (). تأخذ طريقة find () المعلمة الفارغة مع '_id: 0'. للحصول على نتيجة أبسط ، تتم إزالة معرف المستند باستخدام عامل التشغيل '_id: 0'. بشكل افتراضي ، نحصل على مجموعات لم يتم فرزها عند البحث في الاستعلام باستخدام طريقة find (). الإخراج الذي تم استرداده أدناه هو جميع المستندات التي لم يتم فرزها بطريقة لدينا في وقت الإدراج.





المثال رقم 2: نتائج استعلام فرز MongoDB بترتيب تصاعدي

يتم الحصول على المجموعة التي تم فرزها في MongoDB باستخدام طريقة الفرز () التي يجب وضعها بعد طريقة البحث (). تأخذ طريقة الفرز () في MongoDB المعلمة المضمنة مع اسم الحقل وترتيب فرز المستند. نحتاج إلى إدخال '1' كمعامل في الحقل لأننا سنسترجع المستندات بترتيب تصاعدي في هذا المثال بالذات. النتائج التالية في استعلام الفرز بترتيب تصاعدي.



> db.Employees.find (). sort ({name: 1})

هنا ، استخدمنا طريقة الفرز () بعد استعلام البحث عن البحث. يتم استخدام طريقة الفرز () لفرز الحقل 'الاسم' بترتيب تصاعدي حيث يتم وضع القيمة '1' بجوار الحقل المحدد. لاحظ أنه إذا لم يتم تحديد طريقة الفرز () بأي قيمة معلمية ، فلن يتم فرز المجموعة. سيتم الحصول على الإخراج من طريقة الفرز () بالترتيب الافتراضي. يتم عرض نتائج حقل طريقة الفرز حسب الاسم بترتيب تصاعدي في قشرة MongoDB التالية.

المثال رقم 3: نتائج استعلام فرز MongoDB بترتيب تنازلي

الآن ، نعرض نتائج استعلام الفرز لـ MongoDB بترتيب تنازلي. هذا النوع من الاستعلام مماثل للمثال أعلاه ولكن مع اختلاف واحد. للترتيب التنازلي ، تأخذ طريقة sort () القيمة '-1' مقابل اسم العمود. نتائج الاستعلام الفرز بترتيب تنازلي معطاة أدناه.

> db.Employees.find ({}، {'email': 1، _id: 0}). sort ({'email': - 1})

هنا ، يبدأ استعلام البحث بأسلوب البحث () الذي يجد الحقل 'البريد الإلكتروني' ويعيد قيم الحقل 'البريد الإلكتروني' فقط. بعد ذلك ، حددنا طريقة الفرز () التي تُستخدم لفرز حقل 'البريد الإلكتروني' ، وتشير القيمة '-1' المجاورة لها إلى أن نتائج الفرز التي تم الحصول عليها ستكون بترتيب تنازلي. يتم جلب نتائج استعلام فرز الترتيب التنازلي بعد تنفيذها في صدفة MongoDB.

مثال رقم 4: نتائج استعلام فرز MongoDB لحقول متعددة

يمكننا فرز الحقول المتعددة في MongoDB باستخدام طريقة الفرز (). يجب التصريح عن الحقول المراد فرزها بطريقة الفرز (). يعتمد الفرز على أمر الإعلان الخاص بالحقول ويتم فحص ترتيب الفرز من اليسار إلى اليمين. يجب أن يبدو الاستعلام الخاص بفرز الحقول المتعددة كما يلي:

> db.Employees.find ({}، {_ id: 0}). الترتيب ({'الاسم': 1، 'الراتب': 1})

هنا ، يتم تمرير طريقة الفرز () مع حقلي 'الاسم' و 'المرتب' ليتم فرزهما. يتم فرز الحقل 'الاسم' من مجموعة 'الموظف' أولاً لأنه حقل الوسيطة الأول لطريقة الفرز (). ثم تقوم طريقة الفرز () بفرز حقل الوسيطة الثانية 'المرتب'. ترتيب كلا الحقلين هو '1' مما يشير إلى أن الفرز سيكون بترتيب تصاعدي. يتم إنشاء الإخراج لحقول متعددة من استعلام الفرز بترتيب الفرز المحدد أدناه.

المثال رقم 5: نتائج استعلام فرز MongoDB باستخدام أسلوب التحديد

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

> db.Employees.find ({}، {_ id: 0}). sort ({'department': 1، 'DOB': 1}). limit (4) .pretty ()

هنا ، لدينا استعلام البحث الذي يبدأ عملية الفرز لعمود 'القسم' ثم لعمود 'DOB' بترتيب تصاعدي باستخدام طريقة الفرز (). بمجرد الانتهاء من الفرز ، وضعنا طريقة limit () بجوارها لاسترداد المستند المحدود. يتم إعطاء طريقة limit () قيمة رقمية '4' مما يعني أنها تعرض فقط أربعة مستندات مرتبة للمخرجات كما هو موضح في الشاشة التالية:

مثال رقم 6: نتائج استعلام فرز MongoDB باستخدام تجميع الترتيب بالدولار

في جميع الأمثلة أعلاه ، أجرينا الفرز عبر طريقة الفرز () في MongoDB. هناك طريقة أخرى للفرز في MongoDB والتي يتم إنجازها من خلال تجميع الفرز بالدولار. يقوم عامل الفرز $ بفرز جميع مستندات الإدخال التي تقوم بعد ذلك بإرجاع المستندات التي تم فرزها إلى خط الأنابيب. يتم تطبيق عامل الفرز $ على مجموعة 'الموظفين' أدناه.

db.Employees.aggregate ([{$ sort: {insurance: 1، _id: -1}}])

هنا ، قمنا باستدعاء طريقة التجميع التي يمكننا من خلالها استخدام عامل التشغيل '$ sort'. بعد ذلك ، لدينا تعبير عامل الفرز $ الذي يفرز عمود 'الراتب' بترتيب تصاعدي وعمود 'id' بترتيب تنازلي. ينتج عن التجميع $ Sort المطبق على الحقل النتائج التالية:

مثال رقم 6: نتائج استعلام فرز MongoDB باستخدام أسلوب التخطي

يمكن أيضًا إقران طريقة الفرز () مع طريقة تخطي (). يمكن أن تحتوي مجموعة البيانات الناتجة على عدد معين من المستندات التي سيتم تجاهلها باستخدام طريقة skip (). مثل طريقة Limit () ، تقبل طريقة skip () أيضًا القيمة الرقمية التي تشير إلى عدد المستندات التي سيتم تخطيها. لقد قمنا بدمج طريقة sort () مع طريقة skip () في استعلام الفرز.

> db.Employees.find ({}، {_ id: 0}). sort ({'الراتب': 1}). skip (4) .pretty ()

هنا ، استخدمنا طريقة تخطي () بجانب طريقة الفرز (). عندما تقوم طريقة الفرز () بفرز المستندات ، فإنها تمرر إخراج الفرز إلى طريقة الفرز (). بعد ذلك ، أزال الأسلوب skip () أول أربعة مستندات مرتبة من المجموعة.

استنتاج

المقالة حول نتائج الاستعلام الفرز في MongoDB. لقد استخدمنا طريقة الفرز () لهذا الغرض والتي تنظم السجلات في تسلسل محدد. لقد استخدمنا أيضًا طريقة الفرز () للفرز المتعدد عبر عدة حقول. يتم بعد ذلك إقران طريقة الفرز () مع أساليب الحد () والتخطي () إلى المستندات التي تم فرزها باستخدام هذه العمليات بالإضافة إلى ذلك ، قمنا بتوفير تجميع الفرز $ لنتائج استعلام الفرز في MongoDB.