การ insert หลายเอกสารพร้อมกัน (Bulk Insert) ใช้ initializeUnorderedBulkOp() เพื่อประสิทธิภาพดีกว่า insert แยกๆ
> var bulkInsertDoc = db.demo663.initializeUnorderedBulkOp();
> bulkInsertDoc.insert({Name: "John", CountryName: "US"});
> bulkInsertDoc.insert({Name: "Chris", CountryName: "UK"});
> bulkInsertDoc.insert({Name: "David", CountryName: "AUS"});
> bulkInsertDoc.execute();
BulkWriteResult({
"writeErrors" : [],
"writeConcernErrors" : [],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : []
})
แสดงข้อมูล:
> db.demo663.find();
Bulk Operations API (Legacy vs Modern)
| API | Version | คำอธิบาย |
|---|---|---|
initializeUnorderedBulkOp() | Legacy (Shell) | Unordered - รันขนานได้, หยุดไม่ถ้ามี error |
initializeOrderedBulkOp() | Legacy (Shell) | Ordered - รันตามลำดับ, หยุดถ้ามี error |
bulkWrite() | Modern (Driver 3.0+) | API ใหม่ รองรับ ordered/unordered option |