Mongodb: كيفية حساب القيم المميزة في الحقل


يمكنك استخدام الطرق التالية لحساب القيم المميزة في حقل معين في MongoDB:

الطريقة الأولى: البحث عن قائمة بالقيم المميزة

 db.collection.distinct( 'field_name' )

الطريقة الثانية: ابحث عن عدد القيم المميزة

 db.collection.distinct( 'field_name' ).length

توضح الأمثلة التالية كيفية استخدام كل طريقة مع فريق التحصيل مع المستندات التالية:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Rockets ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

مثال 1: ابحث عن قائمة بالقيم المميزة

يمكننا استخدام الكود التالي للعثور على قائمة بالقيم المميزة في حقل “الفريق”:

 db.teams.distinct( 'team' )

يُرجع هذا الاستعلام النتيجة التالية:

 ['Cavs', 'Mavs', 'Rockets']

تعرض النتيجة أسماء الفرق الثلاثة المميزة لجميع المستندات.

يمكننا أيضًا استخدام الكود التالي للعثور على قائمة بالقيم المميزة في حقل “الموضع”:

 db.teams.distinct( 'position' )

يُرجع هذا الاستعلام النتيجة التالية:

 ['Center', 'Forward', 'Guard']

ملاحظة : يقوم MongoDB بفرز القيم المميزة أبجديًا بشكل افتراضي.

مثال 2: ابحث عن عدد القيم الفريدة

يمكننا استخدام الكود التالي لحساب عدد القيم المميزة في حقل “الفريق”:

 db.teams.distinct( 'team' ).length

يُرجع هذا الاستعلام النتيجة التالية:

 3

يخبرنا هذا أن هناك 3 قيم مميزة في حقل “الفريق”.

يمكننا أيضًا استخدام الكود التالي لحساب عدد القيم الفريدة في حقل “النقاط”:

 db.teams.distinct( 'points' ).length

يُرجع هذا الاستعلام النتيجة التالية:

 5

يخبرنا هذا أن هناك 5 قيم مميزة في حقل “النقاط”.

ملاحظة : يمكنك العثور على الوثائق الكاملة للوظيفة المنفصلة هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:

MongoDB: كيفية التجميع والعد
MongoDB: كيفية التجميع حسب حقول متعددة
MongoDB: كيفية العثور على الحد الأقصى للقيمة في المجموعة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *