Mongodb: كيفية التحقق من وجود الحقل


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

الطريقة الأولى: التحقق من وجود الحقل

 db.myCollection.find({ " myField ": { $exists : true } })

تتحقق هذه الطريقة من وجود “myField” في المجموعة المسماة myCollection . إذا كان الأمر كذلك، فإنه يقوم بإرجاع كافة المستندات التي تحتوي على اسم الحقل. إذا لم يحدث ذلك، فإنه لا يعود شيئا.

الطريقة الثانية: التحقق من وجود الحقل المضمن

 db.myCollection.find({ " myField.embeddedField ": { $exists : true } })

تتحقق هذه الطريقة من وجود اسم الحقل “embeddedField” في الحقل “myField” في المجموعة المسماة myCollection . إذا كان الأمر كذلك، فإنه يقوم بإرجاع كافة المستندات التي تحتوي على اسم الحقل. إذا لم يحدث ذلك، فإنه لا يعود شيئا.

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

 db.teams.insertOne({team: "Mavs", class: {conf: "Western", div: "A"}, points: 31 })
db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 })
db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 })
db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })

مثال 1: التحقق من وجود الحقل

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

 db.teams.find({ " points ": { $exists : true } })

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

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

نظرًا لوجود اسم الحقل “النقاط”، يتم إرجاع كل مستند يحتوي على الحقل “النقاط”.

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

 db.teams.find({ " steals ": { $exists : true } })

وبما أن هذا الحقل غير موجود، فلن يتم إرجاع أي مخرجات.

المثال 2: التحقق من وجود الحقل المضمن

يوضح التعليمة البرمجية التالية كيفية التحقق من وجود اسم الحقل المضمن “div” في حقل “الفئة” بمجموعة الفرق :

 db.teams.find({ " class.div ": { $exists : true } })

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

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

نظرًا لوجود اسم الحقل المضمن “div” في الحقل “الفئة”، يتم إرجاع كل مستند يحتوي على الحقل المضمن “div”.

لنفترض أننا بدلاً من ذلك نتحقق مما إذا كان اسم الحقل المضمن “القسم” موجودًا في حقل “الفئة” في مجموعة الفرق :

 db.teams.find({ " class.division ": { $exists : true } })

وبما أن هذا الحقل المضمن غير موجود، فلن يتم إرجاع أي مخرجات.

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

مصادر إضافية

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

MongoDB: كيفية سرد كافة أسماء الحقول
MongoDB: كيفية إعادة تسمية الحقول
MongoDB: كيفية إضافة حقول جديدة
MongoDB: كيفية حذف الحقول

Add a Comment

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