เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การใช้ 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.____)
แก้ไขและรันโค้ด