$bitNot (نفي البتات)
آخر تحديث: 2026-10-09
$bitNot (نفي البتات)
ينفذ $bitNot عملية NOT المنطقية على مستوى البت (المتممة الثنائية) على عدد صحيح واحد — وهو عامل البتات الوحيد الذي يأخذ عاملاً واحدًا. متاح منذ MongoDB 6.3، والنتيجة تساوي -x-1، لذا NOT 5 يعطي -6. يُستخدم لبناء أقنعة تكميلية والنفي العام في حسابات البتات. الوسيطة الفارغة أو المفقودة تُنتج null؛ ويجب أن يكون العامل من نوع int32 أو int64. لاحظ انقلاب الإشارة: إنها متممة ثنائية، وليست مجرد نفي للمقدار.
| الفئة | الرياضيات |
|---|---|
| إصدار MongoDB | 6.3+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $bitNot: <integer-expression> }
⚙️ المعلمات
| عدد صحيح | عدد صحيح int32 أو int64، أو تعبير يُحلّ إليه. |
|---|
القيمة المرجعة:العملية NOT على مستوى البت للإدخال (-x-1)؛ null عندما يكون null أو مفقودًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $bitNot: عكس بتات الصلاحيات لبناء قناع استبعاد
db.users.aggregate([
{ $project: {
denied: { $bitNot: '$allowedBits' }
} }
])
المخرجات:
{ '_id': 1, 'denied': -6 }
{ '_id': 2, 'denied': -1 }
📌 ملاحظات
- النتيجة هي NOT بالمتممة الثنائية، أي تساوي -x-1
- يقبل عاملًا واحدًا بالضبط
- يُدعم int32 و int64 فقط
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما قيمة $bitNot(5)؟
Aإنها -6، لأن NOT بالمتممة الثنائية تتبع -x-1.
Qلماذا ينتج $bitNot نتائج سالبة؟
ANOT بالمتممة الثنائية يقلب البت الأعلى، فيغير الإشارة.
Qأين يكون $bitNot مفيدًا؟
Aبناء أقنعة تكميلية أو التركيب مع عوامل البتات الأخرى.