"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء استعلامات OR/AND متداخلة باستخدام برنامج تشغيل MongoDB Go؟

كيفية إنشاء استعلامات OR/AND متداخلة باستخدام برنامج تشغيل MongoDB Go؟

تم النشر بتاريخ 2025-01-11
تصفح:176

How to Construct Nested OR/AND Queries with the MongoDB Go Driver?

الاستعلامات المنطقية المتداخلة مع MongoDB Go Driver

غالبًا ما تتطلب استعلامات MongoDB استخدام عوامل التشغيل المنطقية المتداخلة (AND/OR) لتصفية المستندات بناءً على على معايير متعددة. في برنامج تشغيل Go MongoDB، يمكن إنشاء استعلامات منطقية متداخلة باستخدام النوعين bson.D وbson.M.

إنشاء استعلامات OR/AND متداخلة

لإنشاء استعلام OR/AND المتداخل، تحتاج إلى استخدام النوع bson.D لتمثيل العامل المنطقي الخارجي (على سبيل المثال، $and) وتمرير عناصر bson.E إليه. يمثل كل عنصر bson.E زوجًا من قيمة الحقل، حيث يمكن أن يكون اسم الحقل هو العامل المنطقي (على سبيل المثال، $or) ويمكن أن تكون القيمة bson.D أو bson.A (للصفائف).

مثال على استعلام OR/AND المتداخل

ضع في اعتبارك استعلام MongoDB:

{ "$و": { "ع": 10، "$أو": { "ق": 30، "أ": 1 } }
{
  "$and": {
    "p": 10,
    "$or": {
      "s": 30,
      "a": 1
    }
  }
}
لتمثيل هذا الاستعلام في Go باستخدام برنامج تشغيل MongoDB، يمكنك استخدام الكود التالي:

filter := bson.D{ {"ع"، 10}، {"$أو"، بسون.A{ بسون.د{{"s"، 30}}، بسون.د{{"أ"، 1}}، }},
{
  "$and": {
    "p": 10,
    "$or": {
      "s": 30,
      "a": 1
    }
  }
}
في هذا المثال، يمثل bson.D عامل التشغيل $and الخارجي، ويمثل bson.A عامل التشغيل $or المتداخل. يمثل كل bson.D ضمن $or استعلامًا فرعيًا.

استخدام bson.M للاستعلامات المتداخلة

يمكنك أيضًا استخدام النوع bson.M لتمثيل الاستعلامات المتداخلة. bson.M عبارة عن واجهة Map[string]interface{} يمكن أن تحتوي على أسماء الحقول والقيم المقابلة لها. يمكن أن تكون القيمة مثيل bson.M آخر، يمثل استعلامًا متداخلاً.

على سبيل المثال، يمكن تمثيل الاستعلام أعلاه باستخدام bson.M كما يلي:

filter := bson.M{ "ع": 10، "$أو": بسون.أ{ بسون.M{"s": 30}، بسون.م {"أ": 1}، },
{
  "$and": {
    "p": 10,
    "$or": {
      "s": 30,
      "a": 1
    }
  }
}

التوصيات

    لتمثيل مصفوفة ضمن عامل منطقي، استخدم bson.A (على سبيل المثال، bson.A{bson.M{"foo" : 1}}).
  • $وهو العامل المنطقي الافتراضي، لذلك ليس من الضروري تضمينه بشكل صريح في query.
باتباع هذه الإرشادات، يمكنك إنشاء استعلامات OR/AND متداخلة بكفاءة في Go باستخدام برنامج تشغيل MongoDB.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3