Комбінування операцій 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...