كيفية العثور على التكرارات في mongodb


يمكنك استخدام بناء الجملة التالي للعثور على المستندات ذات القيم المكررة في MongoDB:

 db.collection.aggregate([
    {" $group ": { "_id": " $field1 ", "count": { " $sum ": 1 } } },
    {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, 
    {" $project ": {"name": " $_id ", "_id": 0} }
])

إليك ما يفعله بناء الجملة هذا:

  • قم بتجميع كافة المستندات بنفس القيمة في الحقل 1
  • مطابقة المجموعات التي لديها أكثر من وثيقة واحدة
  • قم بعرض جميع المجموعات التي لديها أكثر من مستند واحد

يبحث هذا الاستعلام المحدد عن قيم مكررة في العمود field1 . ما عليك سوى تعديل هذه القيمة لتغيير الحقل المراد البحث فيه.

يوضح المثال التالي كيفية استخدام هذه الصيغة مع فريق التحصيل بالمستندات التالية:

 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 })

مثال: ابحث عن المستندات ذات القيم المكررة

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

 db.teams.aggregate([
    {" $group ": { "_id": " $team ", "count": { " $sum ": 1 } } },
    {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, 
    {" $project ": {"name": " $_id ", "_id": 0} }
])

يقوم هذا الاستعلام بإرجاع النتائج التالية:

 { name: 'Rockets' }
{ name: 'Mavs' }

يخبرنا هذا أن قيمتي “Rockets” و”Mavs” تظهران عدة مرات في حقل “team”.

لاحظ أنه يمكننا ببساطة استبدال $team بـ $position للبحث عن القيم المكررة في حقل “position” بدلاً من ذلك:

 db.teams.aggregate([
    {" $group ": { "_id": " $position ", "count": { " $sum ": 1 } } },
    {" $match ": {"_id" :{ " $ne " : null } , "count" : {" $gt ": 1} } }, 
    {" $project ": {"name": " $_id ", "_id": 0} }
])

يقوم هذا الاستعلام بإرجاع النتائج التالية:

 { name: 'Guard' }

يخبرنا هذا أن كلمة “Guard” تظهر عدة مرات في حقل “الموضع”.

مصادر إضافية

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

MongoDB: كيفية إضافة حقل جديد إلى المجموعة
MongoDB: كيفية التجميع والعد
MongoDB: كيفية التجميع حسب حقول متعددة

Add a Comment

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