يقدم هذا الفصل لغة الاستعلام الأساسية لـ MongoDB من خلال واجهة سطر أوامر MongoDB. يُستخدم الأسلوب db.collection.find()
في واجهة سطر أوامر MongoDB لاستعلام البيانات.
إعداد بيانات الاختبار
أدخل بضع قطع من البيانات في مجموعة inventory.
db.inventory.insertMany([
{ item: "مجلة", qty: 25, size: { h: 14, w: 21, uom: "سم" }, status: "A" },
{ item: "دفتر", qty: 50, size: { h: 8.5, w: 11, uom: "بوصة" }, status: "A" },
{ item: "ورق", qty: 100, size: { h: 8.5, w: 11, uom: "بوصة" }, status: "D" },
{ item: "مخطط", qty: 75, size: { h: 22.85, w: 30, uom: "سم" }, status: "D" },
{ item: "بطاقة بريدية", qty: 45, size: { h: 10, w: 15.25, uom: "سم" }, status: "A" }
]);
الاستعلام عن جميع الوثائق
الاستعلام عن جميع الوثائق في مجموعة inventory، حيث {} يمثل شرط استعلام فارغ.
db.inventory.find( {} )
مشابهة للبيان الجملة SQL التالية:
SELECT * FROM inventory
شروط الاستعلام عن المساواة
الصيغة:
{ field: value, ... }
مثال 1:
db.inventory.find( { status: "D" } )
مشابهة للبيان الجملة SQL التالية:
SELECT * FROM inventory WHERE status = "D"
مثال 2: استعلام الحقول المتداخلة، استخدم النقطة (.) لربط حقول المستندات المتداخلة.
db.inventory.find( { "size.uom": "بوصة" } )
مشابهة للبيان الجملة SQL التالية:
SELECT * FROM inventory WHERE size.uom = "بوصة"
ملاحظة: تُخزن وثائق MongoDB بتنسيق JSON، لذا فهي تدعم استخدام الحقول المتداخلة كشروط استعلام.
استخدام مشغلات الاستعلام
يدعم MongoDB مجموعة متنوعة من مشغلات الاستعلام لتنفيذ مجموعة متنوعة من الاستعلامات المعقدة. الصيغة:
{ <field1>: { <operator1>: <value1> }, ... }
تفسير:
- field1: اسم الحقل
- operator1: المشغل
- value1: معلمة المشغل
مثال لمشغل $in:
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
مشابهة للبيان الاستعلامي SQL التالي باستخدام المشغل "in":
SELECT * FROM inventory WHERE status in ("A", "D")
ملاحظة: لمزيد من التفاصيل حول المشغلات، يُرجى الرجوع إلى فصول الاستعلام التفصيلية لاحقًا.
شرط الواقعة
مشابهة لـ SQL، يدعم MongoDB أيضًا شرط الواقعة.
مثال:
// أدخل عدة شروط على التوالي، وصل الشروط باستخدام واقعة
db.inventory.find( { status: "A", item: "بطاقة بريدية"} )
مشابهة لـ البيان الجملة SQL التالية:
SELECT * FROM inventory WHERE status = "A" AND item = "بطاقة بريدية"
شرط الأو (or)
مشابهة لـ SQL، يدعم MongoDB أيضًا شرط الأو، وهو منفذ من خلال المشغل $or.
الصيغة:
{
$or: [
{condition1},
{condition2},
.....
]
}
مثال:
db.inventory.find( { $or: [ { status: "A" }, { item: "بطاقة بريدية"} ] } )
مشابهة للبيان الجملة SQL التالية:
SELECT * FROM inventory WHERE status = "A" OR item = "بطاقة بريدية"
دمج شروط الواقعة والأو
مشابهة لـ SQL، يمكن لـ MongoDB دمج شروط الاستعلام المعقدة باستخدام شروط الواقعة والأو.
مثال:
db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )
هنا، يتم استخدام المشغل $lt لأقل من ومطابقة التعبيرات المنتظمة.
وهذا مشابه للبيان الجملة SQL التالية:
SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 or item like 'p%')
نصيحة: لشرح مفصل لشروط استعلام MongoDB، يُرجى الرجوع إلى الفصول التفصيلية في استعلام MongoDB لاحقًا.