Mongodb: كيفية الاستعلام عن "غير فارغ"؟ في منطقة معينة


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

 db.collection.find({" field_name ":{ $ne : null }}) 

توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.

مثال 1: الاستعلام عن “غير فارغ” في حقل معين

لنفترض أن لدينا فريق تحصيل لديه المستندات التالية:

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

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي لا يكون فيها حقل “الموضع” فارغًا:

 db.teams.find({" position ":{ $ne : null }})

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

 { _id: ObjectId("618bf18f35d8a762d3c28717"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

{ _id: ObjectId("618bf18f35d8a762d3c2871a"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

لاحظ أن المستندات الوحيدة التي تم إرجاعها هي تلك المستندات التي لا يكون حقل “موضعها” فارغًا.

المثال 2: الاستعلام عن “غير فارغ” (عندما لا تحتوي جميع المستندات على الحقل)

لنفترض أن لدينا فريق تحصيل لديه المستندات التالية:

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

لاحظ أن الوثيقة الثانية في المجموعة لا تحتوي حتى على حقل “الموضع”.

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي لا يكون فيها حقل “الموضع” صفرًا:

 db.teams.find({" position ":{ $ne : null }})

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

 { _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

{ _id: ObjectId("618bf18f35d8a762d3c2871a"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

وبما أن الوثيقة الثانية لا تحتوي حتى على حقل “الموضع”، فلن يتم إرجاعها.

لاحظ أيضًا أنه لا يتم أيضًا إرجاع المستندين الآخرين اللذين لهما قيمة فارغة في حقل “الموضع”.

ملخص : باستخدام بناء الجملة $ne:null ، نعيد فقط المستندات التي يوجد لها حقل محدد وليس فارغًا.

مصادر إضافية

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

MongoDB: كيفية الاستعلام باستخدام التعبير العادي “أعجبني”.
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية إضافة حقل جديد إلى المجموعة
MongoDB: كيفية إزالة حقل من كل مستند

Add a Comment

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