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: كيفية إزالة حقل من كل مستند