عامل الحد الأدنى لـ MongoDB $

Aml Alhd Aladny L Mongodb



إذا لم تكن مستخدمًا جديدًا لقواعد البيانات أو البرمجة ، فيجب أن تكون قد جربت البرامج والاستعلامات التي تستخدم عوامل المقارنة - أكبر من ، أو أقل ، أو تساوي ، إلخ. في MongoDB ، حيث نستخدم عامل التشغيل “$ set” من أجل تحديث سجل حقل معين أو إضافة سجل جديد إلى قاعدة البيانات ، يمكننا أيضًا تحقيق نفس النتيجة باستخدام عوامل المقارنة مثل '$ min' و '$ max'. في MongoDB ، يمكن استخدام عامل التشغيل '$ min' في العديد من استعلامات الوظائف لتحديث حقل معين عندما تكون القيمة الجديدة أقل من القيمة المدرجة بالفعل. أيضًا ، يمكن استخدامه لتجميع وعرض سجلات المجموعة بترتيب معين. يساعدك هذا الدليل بطرق مختلفة للتخلص من عامل التشغيل '$ min' في MongoDB.

مثال 1:

بدءًا من الرسم التوضيحي الأول ، نوضح استخدام عامل التشغيل '$ min' في MongoDB لتحديث سجل مُدرج بالفعل باستخدام أداة MongoDB shell في نظام Windows. لذلك ، يجب أن يكون لديك بعض السجلات التي تمت إضافتها بالفعل إلى قاعدة البيانات الخاصة بك. لذلك ، نستخدم استعلام دالة insertMany () لإضافة إجمالي 5 سجلات في مجموعة 'الترتيب' لقاعدة بيانات 'اختبار'. يحتوي كل سجل من السجلات المدرجة التي تظهر في الرسم التوضيحي التالي على إجمالي 4 حقول - المعرف والعنوان والسعر والضريبة. يتم إدخال هذه البيانات المكونة من 5 سجلات بنجاح حسب الإخراج المرفق:

امتحان > db.order.insertMany ( [ { 'هوية شخصية' : 01 ، 'لقب' : 'صابون' و 'سعر البيع' : 500 و 'ضريبة' : 24 } و
... { 'هوية شخصية' : 02 ، 'لقب' : 'شامبو' و 'سعر البيع' : 700 و 'ضريبة' : 27 } و
... { 'هوية شخصية' : 03 ، 'لقب' : 'منظف' و 'سعر البيع' : 400 و 'ضريبة' : 22 } و
... { 'هوية شخصية' : 04 ، 'لقب' : 'عطر' و 'سعر البيع' : 900 و 'ضريبة' : 30 } و
... { 'هوية شخصية' : 05 ، 'لقب' : 'شَبُّورَة' و 'سعر البيع' : 850 و 'ضريبة' : 27 } ] )







حان الوقت لإلقاء نظرة على السجل المدرج في قاعدة بيانات 'اختبار'. لذلك ، تحتاج إلى التخلص من طريقة 'find ()' جنبًا إلى جنب مع طريقة 'forEach' ، مع أخذ 'printjson' كوسيطة في تعليمة 'db'. باستخدام المجموعة المسماة 'النظام' ، لدينا سجل معروض على الشاشة.



امتحان > العثور على ديسيبل ( ) .forEach ( printjson )



حان الوقت لاستخدام عامل التشغيل '$ min' في استعلام دالة 'updateOne' لتحديث سجل واحد من مجموعة 'النظام' التي تم إنشاؤها للتو. يتم استخدام حقل 'id' كمعرف فريد لتحديث سجل معين من قاعدة بيانات بينما يتم تطبيق عامل التشغيل '$ min' على حقل 'SalePrice' لتحديث قيمته إلى 600 إذا كانت أقل من القيمة المدرجة بالفعل. تظهر رسالة الإخراج نجاح الاستعلام ولكن لم يتم إجراء أي تحديثات.





امتحان > db.order.updateOne ( { هوية شخصية: 3 } و { حد أدنى $ : { سعر البيع: 600 } } )

سبب عدم إجراء أي تحديث لحقل 'سعر البيع' للسجل الثالث هو أنه يحتوي على قيمة '400' والتي تقل عن '600'. لذلك ، لا يقوم عامل التشغيل '$ min' بتحديث الحد الأدنى لقيمة '400' بقيمة أكبر تبلغ '600' وفقًا لاستعلام find () المرفق التالي:



امتحان > العثور على ديسيبل ( ) .forEach ( printjson )

دعنا نجري تغييرًا طفيفًا على استعلام التحديث للحصول على ناتج مختلف هذه المرة. نحن نستخدم نفس التعليمات 'db' التي تستخدم وظيفة 'updateOne' فيها لتعديل سجل واحد من '3'. يتم تطبيق عامل التشغيل '$ min' على حقل 'SalePrice' لتعيين قيمته على '300' إذا كانت قيمة '300' أقل من القيمة المدرجة بالفعل. نحن نعلم أن القيمة المدرجة بالفعل '400' لحقل سعر البيع أكبر من القيمة الجديدة '300' المراد مقارنتها. لذلك ، يستبدل '400' بـ '300' هذه المرة. تظهر رسالة الإخراج التنفيذ الناجح لهذا الاستعلام. العد المعدل = 1 يعني أنه تم تعديل سجل واحد.

امتحان > db.order.updateOne ( { هوية شخصية: 3 } و { حد أدنى $ : { سعر البيع: 300 } } )

بعد عرض سجلات مجموعة 'الطلب' من قاعدة بيانات 'الاختبار' بتنسيق JSON عبر تعليمات الوظيفة 'find ()' في صدفة MongoDB ، وجدنا أنه تم تحديث السجل الثالث بنجاح. يتم استبدال قيمة 400 في حقل 'سعر البيع' بقيمة 300.

امتحان > العثور على ديسيبل ( ) .forEach ( printjson )

المثال 2:

ضمن هذا الرسم التوضيحي لـ MongoDB ، نجلب سجلات قاعدة بيانات محددة عن طريق تجميعها فيما يتعلق بالمعامل '$ min' وفقًا للحد الأدنى للقيمة في السجلات. افترض أن لديك نفس السجلات الخمسة في مجموعة 'الترتيب' لقاعدة بيانات 'الاختبار' الخاصة بـ MongoDB وأنك بحاجة إلى بعض البيانات المكررة في الحقول المحددة لقاعدة بيانات 'الاختبار'. لهذا ، نضيف المزيد من السجلات في مجموعة 'الترتيب' لقاعدة بيانات 'الاختبار'. هذه المرة ، نقوم بإدراج القيم المكررة لحقل 'العنوان'. يتم استخدامه في عبارة 'مجموعة $' لتكوين مجموعة من القيم الفريدة. يعرض الإخراج التالي 3 سجلات أخرى مدرجة حديثًا لقاعدة بيانات 'الاختبار'. الآن ، تحتوي مجموعة 'النظام' على قيم مكررة لحقل 'العنوان' بالمقارنة مع السجلات الخمسة القديمة. يستخدم الباقي نفس الشيء.

بعد الحصول على إجمالي 8 سجلات في مجموعة 'الترتيب' لقاعدة بيانات 'الاختبار' ، حان الوقت لاختبار عامل التشغيل $ min الخاص بـ MongoDB بعد تطبيقه في حقل معين تم تجميعه حسب حقل آخر. الأمر التجميعي المرفق هو كل شيء عن هذا. يبدأ بالكلمة الأساسية 'db' متبوعة باسم مجموعة في قاعدة بيانات معينة ووظيفة التجميع (). تبدأ الوظيفة التجميعية باستخدام جملة $ group من MongoDB التي تُستخدم بشكل خاص هنا لعرض البيانات في مجموعة تتعلق بحقل 'العنوان' لقاعدة بيانات 'الاختبار' حيث يتم استخدام حقل 'العنوان' كمفتاح فريد .

في الوقت نفسه ، تتم تهيئة حقل السعر بشكل منفصل والذي يأخذ فقط الحد الأدنى لسجل القيمة من إجمالي 8 نفس السجلات عبر عامل التشغيل '$ min' المطبق عليه. يُظهر ناتج تنفيذ الاستعلام هذا عرض 5 سجلات مع تحديث بسيط في قسم الأسعار. يمكنك أن ترى أنه لا يتم عرض أي سجلات متكررة. يتم عرض بعض السجلات الفريدة والأصغر قيمة هنا.

امتحان > تجميع ديسيبل ( [ { المجموعة $ : { _هوية شخصية: ' العنوان ' ، السعر: { حد أدنى $ : ' سعر البيع ' } } } ] )

استنتاج

هذا الدليل عبارة عن مجموعة من الرسوم التوضيحية لـ MongoDB لعرض طريقة بسيطة ممكنة لاستخدام عامل التشغيل '$ min'. يتم استخدام فقرة المقدمة لمناقشة الغرض من استخدامها في MongoDB. يناقش الجزء الأول من هذه المقالة كيفية عمل عامل التشغيل '$ min' ولا يعمل لسجل واحد في قاعدة بيانات ، أي لتحديث أو إدراج سجل كقيمة دنيا. أيضًا ، توضح الأمثلة الأخيرة استخدامه لتجميع سجل المجموعة على أنه فريد في جميع أنحاء قاعدة البيانات.