این فصل کارهای دسته‌ای (bulkWrite) بر روی داده‌های سند MongoDB با استفاده از مونگو شل را معرفی می‌کند. اینجا، کارهای دسته‌ای نه تنها به بروزرسانی دسته‌ای اسناد اشاره شده در فصل‌های قبل را شامل می‌شوند، بلکه از جمله پشتیبانی برای انجام دسته‌ای عملیات نوشتن، شامل درج سند، بروزرسانی و حذف، استفاده می‌کنند.

تابع bulkWrite برای کارهای دسته‌ای در مونگو شل استفاده می‌شود.

نکته: کارهای دسته‌ای اغلب در سناریوها نیازمند همگام‌سازی داده‌های دسته‌ای هستند.

عملیات نوشتنی پشتیبانی شده توسط تابع bulkWrite

عملیات‌های دسته‌ای پشتیبانی شده شامل ترکیب‌های زیر از عملیات‌های نوشتن می‌شوند:

  • insertOne - درج یک سند
  • updateOne - بروزرسانی یک سند
  • updateMany - بروزرسانی یک دسته از اسناد
  • replaceOne - جایگزینی یک سند
  • deleteOne - حذف یک سند
  • deleteMany - حذف یک دسته از اسناد

قالب نحوی

db.collection.bulkWrite(
   [ <عملیات ۱>, <عملیات ۲>, ... ],
)

توضیحات:

  • عملیات - نماینده پیکربندی عملیات نوشتن
  • bulkWrite یک آرایه از عملیات‌های نوشتن را می‌پذیرد.

مثال

اینجا یک مثال جامع از اجرای دسته‌ای یک مجموعه از عملیات نوشتن سند را نشان می‌دهد.

db.inventory.bulkWrite(
      [
	     // درج یک سند
         { insertOne :
            {
			// محتوای سند
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
               }
            }
         },
		 // بروزرسانی یک سند، updateMany مشابه برای بروزرسانی یک دسته از اسناد است
         { updateOne :
            {
			   // شرط بروزرسانی
               "filter" : { "char" : "Eldon" },
			   // محتوای بروزرسانی
               "update" : { $set : { "status" : "Critical Injury" } }
            }
         },
		 // حذف یک سند، deleteMany مشابه برای حذف چندین سند است
         { deleteOne :
		    // شرط حذف
            { "filter" : { "char" : "Brisbane" } }
         },
		 // جایگزینی یک سند
         { replaceOne :
            {
			    // شرط جایگزینی
               "filter" : { "char" : "Meldane" },
			   // محتوای جایگزینی
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
         }
      ]
   );