Эта глава представляет операции пакетной обработки (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 }
}
}
]
);