Комбинирование операций MongoDB

Введение в MongoDB на Python

Filip Schouwenaars

Machine Learning Researcher

Создание групповой операции

from pymongo import InsertOne, UpdateOne    # import classes

operations = [ InsertOne({ # operation 1 "title": "Dune", "genre": ["action", "adventure", "drama"], "release_year": 2021, "rating": 8.0, "won_oscar": False }), UpdateOne( # operation 2 { "title": "Titanic" }, { "$set": { "won_oscar": True } } ) ]
result = mov.bulk_write(operations) # pass list to bulk_write
Введение в MongoDB на Python

Анализ результата

print(result.inserted_count)
1
print(result.modified_count)
1

Важно помнить

  • Операции выполняются по порядку: ранее выполненные не откатываются
  • Нужна большая надёжность? Используйте транзакции
Введение в MongoDB на Python

Зачем использовать bulk_write?

  • Эффективность
    • Все операции отправляются в одном запросе
    • Экономия времени и снижение сетевых издержек
  • Отслеживаемость
    • Единый объект результата
    • Сводная информация по всем операциям
    • Удобнее для аудита и отладки
  • Чистота кода
    • Операции не разбросаны по коду
    • Логика сгруппирована и легко читается
Введение в MongoDB на Python

Что можно комбинировать?

  • Можно использовать любое сочетание:

    • InsertOne()
    • UpdateOne() / UpdateMany() / ReplaceOne()
    • DeleteOne() / DeleteMany()
    • ReplaceOne()
  • Отлично подходит для:

    • Синхронизации данных
    • Очистки наборов данных
    • Массового импорта
Введение в MongoDB на Python

Давайте потренируемся!

Введение в MongoDB на Python

Preparing Video For Download...