Эта глава представляет операции пакетной обработки (bulkWrite) данных документов MongoDB с использованием оболочки mongo. Здесь пакетные операции относятся не только к пакетному обновлению документов, упомянутому в предыдущих главах, но и включают поддержку выполнения пакета операций записи, включая вставку, обновление и удаление документов.

Функция bulkWrite используется для пакетных операций в оболочке mongo.

Совет: Пакетные операции часто используются в сценариях, требующих синхронизации данных пакетного обновления.

Операции записи, поддерживаемые функцией bulkWrite

Пакетные операции поддерживают следующие комбинации операций записи:

  • insertOne - вставить документ
  • updateOne - обновить документ
  • updateMany - обновить пакет документов
  • replaceOne - заменить документ
  • deleteOne - удалить документ
  • deleteMany - удалить пакет документов

Синтаксический формат

db.collection.bulkWrite(
   [ <операция 1>, <операция 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 }
            }
         }
      ]
   );