toArray() (مؤشر إلى مصفوفة)
آخر تحديث: 2026-10-09
toArray() (مؤشر إلى مصفوفة)
تجلب toArray() كل ما يشير إليه مؤشر بنمط find() وتُعيده كمصفوفة جافاسكريبت: `db.users.find({ age: { $gt: 20 } }).toArray()`. يُستهلك المؤشر بالكامل دفعة واحدة — وهو مناسب لمجموعات النتائج الصغيرة التي تُعالج على العميل. النتائج الضخمة تستهلك ذاكرة كبيرة، ففضّل التدفق بـ forEach() للمجموعات الكبيرة.
| الفئة | المؤشر |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<filter>).toArray()
القيمة المرجعة:مصفوفة بكل مستندات النتيجة.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// toArray: تحويل نتائج المستخدمين البالغين إلى مصفوفة
const users = db.users.find({ age: { $gte: 18 } }).toArray()
print('Total: ' + users.length)
المخرجات:
Total: 42
📌 ملاحظات
- تجلب كل شيء دفعة واحدة — مجموعات النتائج الكبيرة ثقيلة على الذاكرة
- يُنفد المؤشر بعدها ولا يمكن التكرار عليه مجددًا
- النتائج فوق حد استجابة BSON ترفع خطأً؛ اقرنها بـ limit() أو الترقيم الصفحي
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل تُعيد find() مصفوفة؟
Aلا، تُعيد find() مؤشرًا. استدعِ .toArray() للحصول على مصفوفة، أو كرِّر بـ forEach() وما يشابهها.
Qهل تُحمّل toArray كل البيانات دفعة واحدة؟
Aنعم — يصل كل شيء إلى ذاكرة العميل؛ قد تنفجر الذاكرة مع مجموعات النتائج الهائلة، فتدفق بـ forEach() بدلًا من ذلك.
Qهل يمكنني التكرار على المؤشر بعد toArray؟
Aلا، المؤشر منفد. احفظ المصفوفة في متغير إذا احتجتها مجددًا.