Array (قائمة)
آخر تحديث: 2026-10-09
Array (قائمة)
يحمل Array قائمة مرتبة من أي قيم BSON (بما فيها المصفوفات والمستندات المتداخلة). المطابقة هي الانتماء: `{ tags: 'mongodb' }` يطابق المستندات التي تحتوي tags على القيمة. يفرض `$elemMatch` شروطًا متعددة على العنصر نفسه. فهرسة حقل مصفوفة تبني فهرسًا متعدد المفاتيح، موسّعًا كل عنصر.
| الفئة | أنواع BSON |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ tags: ["mongodb", "nosql"] }
db.posts.find({ tags: "mongodb" })
db.posts.find({ ratings: { $elemMatch: { score: { $gte: 4 }, user: "alice" } } })
القيمة المرجعة:قيمة المصفوفة نفسها؛ والاستعلامات تُرجع المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// Array: العضوية و $elemMatch
use shop
db.posts.insertOne({ tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] })
db.posts.find({ tags: 'mongodb' })
المخرجات:
{ _id: ObjectId('...'), tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] }
📌 ملاحظات
- الاستعلام عن حقل مصفوفة يعني «يحوي أي عنصر»
- $elemMatch يطبّق كل الشروط على العنصر نفسه
- فهرسة مصفوفة تنتج فهرسًا متعدد المفاتيح
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل تتطلب مطابقة المصفوفة مساواة تامة؟
Aالانتماء. { tags: 'a' } يطابق المستندات التي تحتوي tags على 'a'، وليس مساواة المصفوفة كاملة.
Qكيف أطابق عنصرًا واحدًا بعدة شروط؟
Aاستخدم $elemMatch: { score: ..., user: ... } لتصيب كل الشروط نفس العنصر.
Qهل يمكن فهرسة المصفوفات؟
Aنعم — يُبنى فهرس متعدد المفاتيح، مع فهرسة كل عنصر على حدة.