Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีอัปเดตหลายเอกสารด้วยคิวรีเดียวใน MongoDB ด้วย bulkWrite

ใช้ bulkWrite() สำหรับการอัปเดตหลายเอกสารพร้อมกัน

bulkWrite() ช่วยให้ส่งคำสั่งอัปเดตหลายรายการในครั้งเดียว ลดการเดินทางระหว่างแอปและฐานข้อมูล

สร้างข้อมูลตัวอย่าง

> db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}});
> db.demo760.insertOne({id:2,details:{Value1:60,Value2:70}});
> db.demo760.insertOne({id:3,details:{Value1:80,Value2:90}});

แสดงข้อมูลก่อนอัปเดต

> db.demo760.find();

ผลลัพธ์:

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 100, "Value2" : 50 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 60, "Value2" : 70 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }

คิวรี bulkWrite อัปเดต id 1 และ 2 พร้อมกัน

> db.demo760.bulkWrite([
    { updateOne: { filter: {id: 1}, update: {$set: {'details.Value1': 900, 'details.Value2': 500}} } },
    { updateOne: { filter: {id: 2}, update: {$set: {'details.Value1': 1000, 'details.Value2': 2000}} } }
])

ผลลัพธ์: { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2, ... }

แสดงข้อมูลหลังอัปเดต

> db.demo760.find();

ผลลัพธ์:

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 900, "Value2" : 500 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 1000, "Value2" : 2000 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }