$bitAnd (و البتات المنطقي)
آخر تحديث: 2026-10-09
$bitAnd (و البتات المنطقي)
ينفذ $bitAnd عملية AND المنطقية على مستوى البت على الأعداد الصحيحة. متاح منذ MongoDB 6.3، ويقبل مصفوفة من الأعداد الصحيحة (أو رقمًا واحدًا). يُستخدم لفحوصات بتات الصلاحيات وتصفية الأعلام وحسابات أقنعة الشبكات الفرعية، مثل اختبار ما إذا كان عدد صلاحيات يحتوي بتًا معينًا. الوسيطة الفارغة أو المفقودة تُنتج null؛ ويجب أن تكون العوامل من نوع int32 أو int64، بينما ترمي double و Decimal والأنواع الأخرى خطأً. وهو ينتمي إلى عائلة العمليات البتية مع $bitOr و $bitXor و $bitNot.
| الفئة | الرياضيات |
|---|---|
| إصدار MongoDB | 6.3+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $bitAnd: [ <integer1>, <integer2>, ... ] }
⚙️ المعلمات
| عدد صحيح | أعداد صحيحة int32 أو int64، أو تعبيرات تُحلّ إليها؛ اثنان على الأقل. |
|---|
القيمة المرجعة:العملية AND على مستوى البت لجميع المعاملات؛ null عندما يكون null أو مفقودًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $bitAnd: التحقق مما إذا كان بت الصلاحية 4 مضبوطًا
db.users.aggregate([
{ $project: {
hasWrite: { $ne: [{ $bitAnd: ['$permissions', 4] }, 0] }
} }
])
المخرجات:
{ '_id': 1, 'hasWrite': true }
{ '_id': 2, 'hasWrite': false }
📌 ملاحظات
- يُدعم int32 و int64 فقط؛ القيم ذات الفاصلة العائمة ترمي خطأً
- نوع النتيجة يطابق نوع العوامل
- قارن النتيجة بـ 0 لاختبار ما إذا كان البت مضبوطًا
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يدعم $bitAnd الأرقام ذات الفاصلة العائمة؟
Aلا — int32 و int64 فقط؛ الإدخال ذو الفاصلة العائمة يرمي خطأً.
Qكيف أتحقق مما إذا كان بت صلاحية مفعّلًا؟
Aطبّق AND على القيمة مع البت المستهدف؛ النتيجة غير الصفرية تعني أن البت مضبوط.
Qمنذ أي إصدار أصبح $bitAnd متاحًا؟
Aمتاح منذ MongoDB 6.3.