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

ข้ามเอกสารใน MongoDB ด้วย skip() ใน Aggregation Pipeline

เพื่อข้ามเอกสารใน 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 แถว):