เพื่อข้ามเอกสารใน MongoDB Aggregation ให้ใช้ Stage $skip
สร้างคอลเลกชันพร้อมเอกสาร _id แบบกำหนดเอง:
> db.demo263.insertOne({_id:100});
{ "acknowledged" : true, "insertedId" : 100 }
> db.demo263.insertOne({_id:200});
{ "acknowledged" : true, "insertedId" : 200 }
> db.demo263.insertOne({_id:300});
{ "acknowledged" : true, "insertedId" : 300 }
แสดงเอกสารทั้งหมด:
> db.demo263.find();
ผลลัพธ์:
คำสั่ง Aggregation: $project สร้างฟิลด์ v_id จากอาร์เรย์ [100, 200], $unwind แยก, $sort เรียง, $skip 2, $limit 2:
> result = db.demo263.aggregate([ ... { "$project": { "v_id": { $ifNull: [null, [100, 200]] } } }, ... { $unwind: '$v_id' }, ... { $sort: { v_id: 1, _id: 1 } }, ... { $skip: 2 }, ... { $limit: 2 } ...]);ผลลัพธ์ - ได้ 2 รายการหลังข้าม 2 รายการแรก (จากอาร์เรย์ [100,200] ที่ unwind แล้วได้ 2 แถว ข้าม 2 แถว แล้ว limit 2 อาจได้แถวที่ 3-4 แต่ตัวอย่างแสดงแค่ 2 แถว):