บทนี้นำเสนอการดำเนินการเป็นชุด (bulkWrite) บนข้อมูลเอกสาร MongoDB โดยใช้ mongo shell ที่นี่ การดำเนินการเป็นชุดไม่เพียงแต่อ้างถึงการอัปเดตเอกสารเป็นชุด ที่กล่าวถึงในบทก่อนหน้า แต่ยังรวมถึงการสนับสนุนในการดำเนินการเขียนเป็นชุด ซึ่งรวมถึงการแทรกเอกสาร อัปเดต และลบที่เพิ่มเติม
ฟังก์ชัน bulkWrite ใช้สำหรับการดำเนินการเป็นชุดใน mongo shell.
Tip: การดำเนินการเป็นชุดมักถูกนำมาใช้ในสถานการณ์ที่ต้องการการซิงโครไหมหลายข้อมูล
การดำเนินการเขียนที่รองรับโดยฟังก์ชัน bulkWrite
การดำเนินการเป็นชุดรองรับการเขียนดังต่อไปนี้:
- insertOne - แทรกเอกสาร
- updateOne - อัปเดตเอกสาร
- updateMany - อัปเดตชุดของเอกสาร
- replaceOne - แทนที่เอกสาร
- deleteOne - ลบเอกสาร
- deleteMany - ลบชุดของเอกสาร
รูปแบบ Syntax
db.collection.bulkWrite(
[ <operation 1>, <operation 2>, ... ],
)
คำอธิบาย:
- การดำเนินการ - แทนที่การกำหนดการดำเนินการเขียน
- bulkWrite รับอาร์เรย์ของการดำเนินการเขียน
ตัวอย่าง
นี่คือตัวอย่างอันทรงครองที่แสดงการดำเนินการเป็นชุดของชุดจากการดำเนินการเขียนเอกสาร
db.inventory.bulkWrite(
[
// แทรกเอกสาร
{ insertOne :
{
// เนื้อหาเอกสาร
"document" :
{
"_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
}
}
},
{ insertOne :
{
"document" :
{
"_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
}
}
},
// อัปเดตเอกสาร, updateMany คล้ายกับการอัปเดตชุดของเอกสาร
{ updateOne :
{
// เงื่อนไขการอัปเดต
"filter" : { "char" : "Eldon" },
// เนื้อหาการอัปเดต
"update" : { $set : { "status" : "บาดเจ็บร้าย" } }
}
},
// ลบเอกสาร, deleteMany คล้ายกับการลบหลายเอกสาร
{ deleteOne :
// เงื่อนไขการลบ
{ "filter" : { "char" : "Brisbane" } }
},
// แทนที่เอกสาร
{ replaceOne :
{
// เงื่อนไขการแทนที่
"filter" : { "char" : "Meldane" },
// เนื้อหาการแทนที่
"replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
}
}
]
);