НачатьНачать бесплатно

Использование bulk_write()

Как вы видели в видео, в .bulk_write() можно использовать следующие операции:

  • InsertOne()
  • UpdateOne() / UpdateMany() / ReplaceOne()
  • DeleteOne() / DeleteMany()
  • ReplaceOne()

Сейчас вы наведёте порядок в базе данных фильмов — некоторые из этих операций вам пригодятся!

Во-первых, команда хочет отметить все высоко оценённые фильмы, получившие «Оскар», как "featured" на главной странице. Во-вторых, вам поручено удалить все фильмы, вышедшие очень давно, чтобы не загромождать базу.

Обе операции вы объедините в одном вызове .bulk_write() и выполните их вместе.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Заполните первую операцию в operations: обновите все фильмы с рейтингом больше или равным 8.0, которые получили «Оскар», — добавьте для них новое поле "featured" со значением True.
  • Заполните вторую операцию в operations: удалите все фильмы с годом выпуска до 1980.
  • Выполните операцию .bulk_write() на коллекции mov и сохраните результат в переменную res.
  • Выведите количество изменённых и количество удалённых документов.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

from pymongo import UpdateMany, DeleteMany

operations = [
  	# Set featured to True for all movies with rating > 8 that won oscar
  	____(
    	{ "rating" : { ____: ____}, "won_oscar": ____ },
    	{ "$set": { ____: ____} }
  	),
  	# Remove all movies with release_year before 1980
  	____(
   		{ "release_year": { ____: ____} }
  	)
]                 

# Perform bulk write
res = mov.____

# Print out counts
print(res.____)
print(res.____)
Редактировать и запускать код