تجمع MongoDB شروط الاستعلام باستخدام المعاملات المنطقية — $and و $or و $not و $nor — بالإضافة إلى AND الضمني للحقول المتعددة في مرشح. تتيح لك هذه المعاملات التعبير عن منطق استعلام معقد للعثور على المستندات التي تحتاجها بالضبط.
تجمع MongoDB شروط الاستعلام باستخدام المعاملات المنطقية — $and و $or و $not و $nor — بالإضافة إلى AND الضمني للحقول المتعددة في مرشح. تتيح لك هذه المعاملات التعبير عن منطق استعلام معقد للعثور على المستندات التي تحتاجها بالضبط.
// multiple fields in one filter = AND (all must match)
db.users.find({ active: true, age: { $gt: 18 } });
// → active = true AND age > 18 (no explicit $and needed)
الحالة الأبسط: إدراج عدة شروط في مرشح يجمعها AND بشكل ضمني — يجب أن تتطابق جميعها.
// $or takes an array of conditions; a document matches if ANY is true
db.users.find({
$or: [
{ age: { $lt: 18 } },
{ age: { $gt: 65 } }
]
});
// → age < 18 OR age > 65
// usually implicit, but $and is needed when combining conditions on the SAME field
db.products.find({
$and: [
{ price: { $gt: 100 } },
{ price: { $lt: 500 } }
]
});
// (often you can write { price: { $gt: 100, $lt: 500 } } instead — cleaner)
// $and is also useful to combine $or groups:
db.users.find({
$and: [
{ $or: [{ role: "admin" }, { role: "editor" }] },
{ active: true }
]
});
db.products.find({ price: { $not: { $gt: 100 } } }); // NOT (price > 100) → price <= 100 or missing
db.users.find({ $nor: [{ active: true }, { premium: true }] }); // NEITHER condition true
// real queries combine logical + comparison operators
db.orders.find({
status: "shipped", // implicit AND
$or: [
{ total: { $gt: 1000 } },
{ priority: "high" }
]
});
// → status = shipped AND (total > 1000 OR priority = high)
المعاملات المنطقية ضرورية للتعبير عن شروط استعلام معقدة في MongoDB — الاستعلامات الحقيقية غالباً ما تحتاج أكثر من شرط واحد (دمج معايير متعددة بمنطق AND/OR)، لذا فهم هذه المعاملات هو معرفة أساسية يومية لتصفية البيانات بفعالية.
معرفة AND الضمني للحقول المتعددة في المرشح (الحالة الأبسط والأكثر شيوعاً — إدراج شروط يجب أن تتطابق جميعها)، $or (مطابقة أي من عدة شروط — احتياج متكرر للبدائل)، $and (AND صريح، مطلوب لدمج الشروط على نفس الحقل أو تجميع بنود $or)، و $not/$nor (النفي) تغطي اللبنات المنطقية الأساسية للتعبير عن متطلبات الاستعلام.
فهم كيفية دمج المعاملات المنطقية والمقارنة (بناء استعلامات مثل "status shipped AND (total > 1000 OR priority high)") ضروري للاستعلامات الواقعية ذات الشروط المتعددة.
بما أن تصفية البيانات بشروط مدمجة احتياج شائع (العثور على المستندات التي تطابق معايير معقدة)، وبما أن المعاملات المنطقية في MongoDB (AND الضمني و $or و $and و $not/$nor) هي كيفية التعبير عن هذا المنطق — مدمجة مع معاملات المقارنة للشروط الفعلية — فهم المعاملات المنطقية ضروري ومعرفة MongoDB مطبقة بتكرار لكتابة استعلامات فعالة، ما يعادل إتقان AND/OR/NOT في بنود SQL WHERE، وضروري للعثور على المستندات التي تحتاجها بالضبط مع الشروط المعقدة غالباً التي تتطلبها التطبيقات الحقيقية.