$bit (تحديث بتّي)
آخر تحديث: 2026-10-09
$bit (تحديث بتّي)
يُجري $bit عمليات بتّية على الحقول الصحيحة: AND وOR وXOR. فالعبارة `{ $bit: { flags: { and: 254 } } }` تزيل البتة الأدنى. وهو ذري، وعلى خلاف معظم عوامل التحديث لا ينشئ حقلًا مفقودًا — بل يرمي خطأ بدلًا من ذلك. مثالي لصلاحيات وأعلام قناع البتات المضغوطة، مكمّلًا لعوامل الاستعلام $bits*.
| الفئة | تحديث المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $bit: { <field>: { and: <value> | or: <value> | xor: <value> } } }
⚙️ المعلمات
| حقل | الحقل الصحيح المراد تطبيق عمليات البتات عليه. |
|---|---|
| عملية بتية | واحد من and أو or أو xor مع قيمة قناع بتات. |
القيمة المرجعة:نتيجة التحديث
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $bit: AND لإزالة البتة الأدنى
// 254 بالثنائي هي 11111110
db.users.updateOne(
{ _id: 1 },
{ $bit: { flags: { and: 254 } } }
)
// OR لضبط البتة 0
db.users.updateOne(
{ _id: 1 },
{ $bit: { flags: { or: 1 } } }
)
المخرجات:
// تُزال البتة الأدنى؛ المثال الثاني يضبط البتة 0
📌 ملاحظات
- يدعم and وor وxor
- لا ينشئ حقلًا مفقودًا — يرمي خطأ
- أعداد صحيحة فقط (int، long)
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qأي العمليات يدعمها $bit؟
AAND وOR وXOR.
Qماذا يحدث إذا كان حقل $bit مفقودًا؟
Aيرمي خطأ بدلًا من الإنشاء؛ هيئه أولًا بـ $set.
Qكيف أضبط أو أزيل بتة واحدة؟
Aاضبط بـ or: 1 مُزاحًا يسارًا n مرات؛ وأزل بـ and: النفي بتّيًا لذلك.