$type (نوع BSON)
آخر تحديث: 2026-10-09
$type (نوع BSON)
يطابق $type المستندات التي تكون قيمة حقلها من نوع BSON معين. فالعبارة `{ age: { $type: 'int' } }` تطابق المستندات التي يكون عمرها عددًا صحيحًا 32 بت. استخدم الأسماء المستعارة للأنواع (string، object، array، date، double) أو الرموز الرقمية (1 double، 2 string). السلسلة '21' والرقم 21 نوعان مختلفان — وهو مصدر ارتباك شائع.
| الفئة | العنصر والتقييم |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ <field>: { $type: <BSON type> } }
⚙️ المعلمات
| حقل | حقل المستند المراد اختبار نوعه. |
|---|---|
| نوع BSON | اسم مستعار أو رمز للنوع، مثل 'int' و'string' و'date' و'array'. |
القيمة المرجعة:مؤشر المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $type: المستخدمون الذين عمرهم عدد صحيح
// int يعني عددًا صحيحًا 32 بت
db.users.find({ age: { $type: 'int' } })
// أنواع متعددة: int أو double
db.users.find({ age: { $type: ['int', 'double'] } })
المخرجات:
// يُرجع المستخدمين الذين عمرهم int؛ الاستعلام الثاني يطابق int أو double
📌 ملاحظات
- تنقسم الأنواع الرقمية إلى int و long و double و decimal — لا تجمعها
- السلسلة '21' والرقم 21 نوعان مختلفان؛ $type صارم
- الأسماء المستعارة والرموز كلاهما يعمل: 'date' يساوي الرمز 9
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما هي أسماء $type المستعارة الشائعة؟
Adouble، string، object، array، binData، objectId، bool، date، null، regex، int، long، decimal، timestamp وغيرها.
Qكيف أستعلم عن حقل من نوع تاريخ؟
A{ updatedAt: { $type: 'date' } }.
Qهل يمكن لـ $type مطابقة null؟
Aنعم، تطابق 'null' المستندات التي تكون قيمة حقلها null (يجب أن يوجد الحقل).