เริ่มต้นด้วย MongoDB เวอร์ชัน 3.0 เพียงแค่เปลี่ยนลำดับจาก
collection.aggregate(...).explain()
ถึง
collection.explain().aggregate(...)
จะให้ผลลัพธ์ที่ต้องการ (เอกสารที่นี่ )
สำหรับเวอร์ชันเก่า> = 2.6 คุณจะต้องใช้explainตัวเลือกสำหรับการดำเนินการไปป์ไลน์การรวม
explain:true
db.collection.aggregate([
    { $project : { "Tags._id" : 1 }},
    { $unwind : "$Tags" },
    { $match: {$or: [{"Tags._id":"tag1"},{"Tags._id":"tag2"}]}},
    { $group: { 
        _id : "$_id",
        count: { $sum:1 } 
    }},
    {$sort: {"count":-1}}
  ],
  {
    explain:true
  }
)
การพิจารณาที่สำคัญกับการรวมกรอบคือการที่ดัชนีเท่านั้นที่สามารถใช้ในการดึงข้อมูลเบื้องต้นสำหรับท่อ (เช่นการใช้งานของ   $match, $sort, $geonearที่จุดเริ่มต้นของท่อที่) เช่นเดียวกับที่ตามมา   $lookupและ$graphLookupขั้นตอน เมื่อได้รับข้อมูลที่ลึกซึ้งลงไปในท่อรวมสำหรับการประมวลผล (เช่นผ่านขั้นตอนเช่น$project, $unwindและ$group) การจัดการต่อไปจะอยู่ในหน่วยความจำ (อาจจะใช้ไฟล์ชั่วคราวถ้าallowDiskUseตัวเลือกเป็นชุด)
การเพิ่มประสิทธิภาพไปป์ไลน์
โดยทั่วไปคุณสามารถเพิ่มประสิทธิภาพไปป์ไลน์การรวมโดย:
- การเริ่มต้นไปป์ไลน์โดยมี
$matchขั้นตอนเพื่อ จำกัด การประมวลผลเอกสารที่เกี่ยวข้อง 
- การดูแลให้การเริ่มต้น
$match/ $sortขั้นตอนการได้รับการสนับสนุนโดยดัชนีที่มีประสิทธิภาพ 
- การกรองข้อมูลในช่วงต้นใช้
$match, และ$limit$skip 
- ลดขั้นตอนที่ไม่จำเป็นและการจัดการเอกสาร (อาจพิจารณาสคีมาของคุณใหม่หากจำเป็นต้องใช้ยิมนาสติกแบบรวมที่ซับซ้อน)
 
- ใช้ประโยชน์จากตัวดำเนินการรวมรุ่นใหม่หากคุณอัพเกรดเซิร์ฟเวอร์ MongoDB ของคุณ ตัวอย่างเช่น MongoDB 3.4 ได้เพิ่มขั้นตอนการรวมและนิพจน์ใหม่ๆ มากมายรวมถึงการสนับสนุนการทำงานกับอาร์เรย์สตริงและแง่มุม
 
นอกจากนี้ยังมีAggregation Pipeline Optimizations จำนวนหนึ่งที่เกิดขึ้นโดยอัตโนมัติขึ้นอยู่กับเวอร์ชันเซิร์ฟเวอร์ MongoDB ของคุณ ตัวอย่างเช่นขั้นตอนที่อยู่ติดกันอาจรวมกันและ / หรือจัดลำดับใหม่เพื่อปรับปรุงการดำเนินการโดยไม่ส่งผลต่อผลลัพธ์ของผลลัพธ์
ข้อ จำกัด
สำหรับ MongoDB 3.4 explainอ็อพชันAggregation Framework จะให้ข้อมูลเกี่ยวกับวิธีการประมวลผลไปป์ไลน์ แต่ไม่สนับสนุนรายละเอียดระดับเดียวกับexecutionStatsโหมดสำหรับfind()คิวรี หากคุณกำลังมุ่งเน้นไปที่การเพิ่มประสิทธิภาพการดำเนินการแบบสอบถามครั้งแรกคุณอาจจะพบว่ามันเป็นประโยชน์ต่อการตรวจสอบเทียบเท่าfind().explain()แบบสอบถามexecutionStatsหรือallPlansExecutionฟุ่มเฟื่อย
มีคำขอคุณสมบัติที่เกี่ยวข้องสองสามรายการเพื่อรับชม / โหวตในตัวติดตามปัญหา MongoDB เกี่ยวกับสถิติการดำเนินการโดยละเอียดเพิ่มเติมเพื่อช่วยเพิ่มประสิทธิภาพ / โปรไฟล์ไปป์ไลน์การรวม: