$jsonSchema (التحقق من مخطط JSON)

آخر تحديث: 2026-10-09

$jsonSchema (التحقق من مخطط JSON)

يتحقق $jsonSchema من بنية المستند وفق معيار مسودة JSON Schema، ويمكن استخدامه كمسند استعلام أو كمدقق للمجموعة. `{ $jsonSchema: { required: ['name'], properties: { age: { bsonType: 'int' } } } }`. يدعم الحقول المطلوبة وقيود الأنواع وأنماط الخصائص، لكنه لا يمكنه استخدام الفهارس العادية ويكلف كثيرًا على المجموعات الكبيرة — وهو الأنسب لفحوصات جودة البيانات.

الفئةالعنصر والتقييم
إصدار MongoDB3.6+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $jsonSchema: { required: [ <field name> ], properties: { <property>: { <constraint> } } } }

⚙️ المعلمات

كائن المخططمستند JSON Schema بمفاتيح مثل required وproperties وbsonType.

القيمة المرجعة:مؤشر المستندات المطابقة

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $jsonSchema: name مطلوب، وage يجب أن يكون int
db.users.find({
  $jsonSchema: {
    required: ['name'],
    properties: {
      age: { bsonType: 'int' }
    }
  }
})

المخرجات:

// يُرجع المستندات التي يوجد فيها name ويكون age من نوع int (الحقل age غير المُعلن يمر أيضًا)

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qهل يمكن لـ $jsonSchema التحقق من الكائنات المتداخلة؟
Aنعم، ضع properties داخل properties للتحقق مستوى بمستوى.
Qما الفرق بين $jsonSchema و $type؟
Aيختبر $type نوع حقل واحد؛ بينما يتحقق $jsonSchema من بنية المستند بالكامل عبر required والتداخل والحقول المتعددة.
Qهل يمكنني استخدام $jsonSchema عند إنشاء مجموعة؟
Aنعم، مرر validator: { $jsonSchema: {...} } إلى db.createCollection كمدقق عند الكتابة.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%