collMod (تعديل مجموعة)
آخر تحديث: 2026-10-09
collMod (تعديل مجموعة)
يضبط collMod إعدادات مجموعة موجودة: انتهاء فهرس TTL (expireAfterSeconds)، ومدقّق المخطط، وخيارات الفهارس، وغير ذلك. الحقل الأول في مستند الأمر هو اسم المجموعة. يعدّل collMod المجموعات الموجودة فقط — وإنشاء مجموعة جديدة يستخدم create. تغييرات المدقّق تنطبق على الكتابات الجديدة والمستندات المحدَّثة فقط.
| الفئة | أوامر الإدارة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.runCommand({ collMod: "<collection>", validator: { ... } })
db.runCommand({ collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 } })
⚙️ المعلمات
| validator | قواعد تحقق جديدة ($jsonSchema وما شابهها). |
|---|---|
| index | تغييرات خيارات الفهرس، مثل TTL expireAfterSeconds. |
القيمة المرجعة:يُرجع ok: 1 بالإضافة إلى القيم القديمة/الجديدة للخيارات المعدَّلة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// collMod: ضبط انتهاء صلاحية TTL
use shop
db.runCommand({
collMod: 'sessions',
index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 }
})
المخرجات:
{ expireAfterSeconds_old: 86400, expireAfterSeconds_new: 3600, ok: 1 }
📌 ملاحظات
- انتهاء TTL يُغيَّر فقط عبر collMod بعد إنشاء الفهرس
- تغييرات المدقّق تنطبق على الكتابات الجديدة والمستندات المحدَّثة فقط
- الحقل الأول في الأمر هو اسم المجموعة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف أغيّر زمن انتهاء TTL؟
Aاستخدم collMod مع index.expireAfterSeconds — دون الحاجة إلى إعادة بناء الفهرس.
Qأي الإعدادات يمكن أن يغيّرها collMod؟
Aالمدقّقون، وانتهاء TTL، وخيارات الفهارس، وتوسعة المجموعات المجزأة، وغيرها.
Qهل يؤثر تغيير المدقّق على المستندات الموجودة؟
Aلا — يتحقق فقط من الكتابات الجديدة والمستندات المحدَّثة.