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