insert (إدراج مستندات)
آخر تحديث: 2026-10-09
insert (إدراج مستندات)
insert هو أمر الإدراج منخفض المستوى، تلفّه عادةً db.collection.insertOne()/insertMany() في mongosh. الصيغة الخام هي db.runCommand({ insert: 'orders', documents: [...] }). يدرج مستندات كثيرة دفعة واحدة ويولّد ObjectId تلقائيًا عند غياب _id. على عكس الوضع المرتب insertMany، إذا فشل أي مستند في أمر insert فلا يُدرج أي منها.
| الفئة | أوامر الإدارة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.orders.insertOne({ item: "apple", qty: 10 })
db.runCommand({
insert: "orders",
documents: [ { item: "apple", qty: 10 }, { item: "pear", qty: 5 } ]
})
⚙️ المعلمات
| documents | مصفوفة المستندات المراد إدراجها. |
|---|---|
| ordered | true يتوقف عند أول خطأ (الافتراضي)؛ وfalse يتخطى ويواصل. |
القيمة المرجعة:يُرجع n (عدد المُدرَج) وok ومعرِّفات _id المُدرَجة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// insert: إدراج جماعي عبر الأمر
use shop
db.runCommand({
insert: 'orders',
documents: [
{ item: 'apple', qty: 10 },
{ item: 'pear', qty: 5 }
]
})
المخرجات:
{ n: 2, ok: 1 }
📌 ملاحظات
- حقول _id المفقودة تحصل على ObjectId مولّدة تلقائيًا، وتُصدى مرة أخرى
- المستندات المفردة محدودة بـ 16 ميجابايت؛ استخدم GridFS للملفات الأكبر
- إذا فشل أي مستند، لا يُدرج الأمر أي شيء
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين insert و insertMany؟
AinsertMany يسمح بالنجاح الجزئي مع ordered: false؛ بينما أمر insert لا يُدرج شيئًا إذا فشل أي مستند.
Qكيف أحصل على المعرّفات _id المُدرجة؟
Aأمر insert يصدى المستندات مع _id؛ والمساعدات تُعيد insertedIds.
Qما الحجم الأقصى لمستند واحد؟
A16 ميجابايت — حد حجم مستند BSON.