Bắt đầu ngayBắt đầu miễn phí

Sử dụng bulk_write()

Như bạn đã thấy trong video, bạn có thể dùng một số thao tác trong .bulk_write():

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

Bạn đang dọn dẹp dữ liệu mùa xuân cho cơ sở dữ liệu phim, và một vài thao tác sau sẽ rất hữu ích!

Đầu tiên, nhóm của bạn muốn gắn cờ tất cả các phim đoạt Oscar có điểm đánh giá cao là "featured" trên trang chủ. Thứ hai, để giảm lộn xộn, bạn được yêu cầu xóa các phim phát hành từ rất lâu.

Bạn sẽ gom cả hai thay đổi vào một thao tác .bulk_write() duy nhất để thực thi cùng lúc.

Bài tập này là một phần của khóa học

Nhập môn MongoDB với Python

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thành thao tác đầu tiên trong operations để cập nhật tất cả phim có điểm đánh giá lớn hơn hoặc bằng 8.0 và đã thắng Oscar; đặt trường mới "featured" thành True cho các phim này.
  • Hoàn thành thao tác thứ hai trong operations để xóa tất cả phim có năm phát hành trước 1980.
  • Thực hiện thao tác .bulk_write() trên mov và lưu kết quả vào res.
  • In ra có bao nhiêu tài liệu đã được sửa đổi và bao nhiêu tài liệu đã bị xóa.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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.____)
Chỉnh sửa và Chạy Mã