يقدم هذا الفصل عمليات الدُفعة (bulkWrite) على بيانات وثيقة MongoDB باستخدام واجهة سطر الأوامر mongo shell. هنا، لا تُشير عمليات الدُفعة فقط إلى تحديث الوثائق بالدُفعات المذكور في الفصول السابقة، ولكنها تشمل أيضًا دعم تنفيذ دُفعة من عمليات الكتابة، بما في ذلك إدراج الوثيقة، والتحديث، والحذف.
وظيفة bulkWrite تُستخدم لعمليات الدُفعة في واجهة سطر الأوامر mongo shell.
نصيحة: تُستخدم عمليات الدُفعة في الحالات التي تتطلب مزامنة البيانات بالدُفعات.
عمليات الكتابة المدعومة بواسطة وظيفة bulkWrite
تدعم عمليات الدُفعة الجماعية الجمعيات الآتية من عمليات الكتابة:
- insertOne - إدراج وثيقة
- updateOne - تحديث وثيقة
- updateMany - تحديث دُفعة من الوثائق
- replaceOne - استبدال وثيقة
- deleteOne - حذف وثيقة
- deleteMany - حذف دُفعة من الوثائق
تنسيق الصيغة
db.collection.bulkWrite(
[ <operation 1>, <operation 2>, ... ],
)
الشرح:
- العملية - تمثل تكوين عملية الكتابة
- تقبل bulkWrite مجموعة من عمليات الكتابة كمصفوفة.
مثال
إليك مثال شامل يُظهر تنفيذ دُفعة من مجموعة من عمليات كتابة الوثيقة.
db.inventory.bulkWrite(
[
// إدراج وثيقة
{ insertOne :
{
// محتوى الوثيقة
"document" :
{
"_id" : 4, "char" : "ديثراس", "class" : "محارب", "lvl" : 4
}
}
},
{ insertOne :
{
"document" :
{
"_id" : 5, "char" : "تائلن", "class" : "مقاتل", "lvl" : 3
}
}
},
// تحديث وثيقة، وتشابه updateMany في تحديث دُفعة من الوثائق
{ updateOne :
{
// شرط التحديث
"filter" : { "char" : "إيلدون" },
// محتوى التحديث
"update" : { $set : { "status" : "إصابة حرجة" } }
}
},
// حذف وثيقة، ويشابه deleteMany في حذف عدة وثائق
{ deleteOne :
// شرط الحذف
{ "filter" : { "char" : "بريزبين" } }
},
// استبدال وثيقة
{ replaceOne :
{
// شرط الاستبدال
"filter" : { "char" : "ميلدين" },
// محتوى الاستبدال
"replacement" : { "char" : "تانيس", "class" : "عراف", "lvl" : 4 }
}
}
]
);