insertMany() (إدراج جماعي)

آخر تحديث: 2026-10-09

insertMany() (إدراج جماعي)

تُدرج insertMany() مستندات متعددة في استدعاء واحد، مثل `db.users.insertMany([{ name: 'A' }, { name: 'B' }])`. مع ordered: true (الافتراضي) تُنفَّذ عمليات الإدراج بالترتيب وتتوقف عند أول خطأ؛ أما مع false فتُجرَّب المستندات المتبقية أيضًا. تحتوي النتيجة على acknowledged و insertedIds، التي تربط فهرس كل مستند بـ _id الخاص به. توفر كثيرًا من جولات الطلب مقارنةً بتكرار insertOne()، مما يجعلها الخيار الأول لتهيئة البيانات والترحيلات.

الفئةالكتابة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.insertMany(<documents>, { ordered: <bool>, writeConcern: <options> })

⚙️ المعلمات

مصفوفة مستنداتمصفوفة مستندات BSON المراد إدراجها.
orderedاختياري. ‏true يتوقف عند أول خطأ، وfalse يتخطاه ويواصل؛ الافتراضي true.
writeConcernاختياري. ضمان الكتابة (write concern).

القيمة المرجعة:كائن نتيجة يحتوي على acknowledged وinsertedIds (ربط الفهرس بـ _id).

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// insertMany: إدراج ثلاثة مستخدمين دفعة واحدة
db.users.insertMany([
  { name: 'Alice', age: 21 },
  { name: 'Bob', age: 25 },
  { name: 'Cara', age: 30 }
])

المخرجات:

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId('64c8a1b20000000000000001'),
    '1': ObjectId('64c8a1b20000000000000002'),
    '2': ObjectId('64c8a1b20000000000000003')
  }
}

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qما الفرق بين insertMany و insertOne؟
Aتكتب insertMany() مستندات كثيرة في جولة طلب واحدة؛ بينما تكتب insertOne() مستندًا واحدًا. لأحمال العمل الضخمة تتفوق insertMany() بفارق كبير على تكرار insertOne().
Qما وظيفة خيار ordered في insertMany؟
Aمع ordered: true تتوقف عمليات الإدراج عند أول خطأ وتُسترجَع الدفعة؛ ومع false تُتخطى المستندات الفاشلة ويستمر إدراج البقية.
Qماذا تُعيد insertMany عندما يفشل بعض المستندات فقط؟
Aتُعيد acknowledged مع insertedIds التي تغطي الفهارس المُدرجة بنجاح فقط؛ وتوجد تفاصيل الفشل في خطأ BulkWriteError المرفوع.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%