map() (تحويل مؤشر)
آخر تحديث: 2026-10-09
map() (تحويل مؤشر)
تطبّق map() تحويلًا على كل مستند في مؤشر وتُعيد النتائج كمصفوفة، مثل `db.users.find().map(function(u) { return u.name })`. فكّر فيها على أنها forEach() مع جمع النتائج — مفيدة لاستخراج الحقول أو إعادة تشكيل البيانات. لاحظ أن map() تستهلك المؤشر بالكامل وتُعيد مصفوفة وليس مؤشرًا جديدًا.
| الفئة | المؤشر |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<filter>).map(<transform>)
⚙️ المعلمات
| دالة التحويل | دالة تُحوّل مستندًا إلى قيمة جديدة، مثل function(u) { return u.name }. |
|---|
القيمة المرجعة:مصفوفة بالقيم المحوَّلة.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// map: استخراج أسماء كل المستخدمين البالغين
const names = db.users.find({ age: { $gte: 18 } }).map(u => u.name)
names
المخرجات:
[ 'Alice', 'Bob', 'Cara' ]
📌 ملاحظات
- map() تستهلك المؤشر وتُعيد مصفوفة
- التحويل ينتج قيمًا جديدة؛ مستندات قاعدة البيانات لا تُمس
- أنهِ تسلسل المؤشر أولًا ثم حوّل إلى مصفوفة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين map و forEach؟
Aتُعيد map() مصفوفة من القيم المحوَّلة للاستخراج؛ بينما تشغّل forEach() استدعاءً رجعيًا ولا تُعيد شيئًا.
Qهل نتيجة map مصفوفة؟
Aنعم، تُعيد map() مصفوفة — مثل forEach مع جمع النتائج.
Qهل تعدّل map المستندات في قاعدة البيانات؟
Aلا — يعمل التحويل على نسخ في الذاكرة على العميل.