String (نص)
آخر تحديث: 2026-10-09
String (نص)
String هو أكثر أنواع الحقول شيوعًا في MongoDB، ويحمل نص UTF-8. طابقه تمامًا بـ `$eq` أو بالنمط بـ `$regex`؛ أما البحث النصي الكامل فيحتاج فهرس نص (text index) مع `$text`. تخزين الأرقام أو التواريخ كسلاسل يجعل استعلامات النطاق والترتيب معجميًا وليس رقميًا ('9' ترتّب بعد '10')، ما يكسر النتائج بصمت.
| الفئة | أنواع BSON |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ name: "apple" }
{ name: { $regex: "^app" } }
db.articles.find({ $text: { $search: "mongodb" } })
القيمة المرجعة:قيمة النص نفسها؛ والاستعلامات تُرجع المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// String: البحث بالتعبير النمطي وبالبحث النصي الكامل
use shop
db.users.find({ email: { $regex: '@example\\.com$' } })
db.articles.find({ $text: { $search: 'mongodb indexing' } })
المخرجات:
// المستخدمون الذين تنتهي بريدهم الإلكتروني بـ @example.com، إضافة إلى المقالات المطابقة لـ mongodb/indexing
📌 ملاحظات
- يُخزَّن كـ UTF-8؛ مفاتيح الفهرس لها حد ~1KB
- لا تخزّن الأرقام كسلاسل أبدًا — سيكون الترتيب خاطئًا
- مقارنات السلاسل حساسة لحالة الأحرف
- $regex غير المرساة لا يمكنه استخدام الفهارس ويفحص المجموعة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
حذف المستندات والبدء في استخدام Node.js
نماذج مونغوس وتصميم المخطط
التحقق من صحة البيانات والبرمجيات الوسيطة في Mongoose
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qمتى أستخدم String مقابل ObjectId؟
Aاستخدم String للمعرّفات التجارية (معرّفات خارجية وأرقام طلبات)؛ وObjectId عندما تريد معرّفات فريدة تلقائيًا مرتبة زمنيًا.
Qهل يمكنني فهرسة حقول سلاسل؟
Aنعم. فهارس عادية للمساواة/النطاق، وفهارس نصية للبحث النصي الكامل.
Qلماذا تكون '9' أكبر من '10'؟
Aتقارن السلاسل حرفًا بحرف؛ لـ '9' نقطة رمز أكبر من '1'، لذا ترتّب '9' بعد '10'.