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

การใช้ $slice เพื่อดึงจำนวนรายการที่ต้องการจากอาร์เรย์ใน MongoDB

จำกัดจำนวนองค์ประกอบที่คืนกลับมาจากอาร์เรย์ด้วย $slice

ตัวดำเนินการ $slice ใน projection ของ find() ใช้สำหรับจำกัดจำนวนองค์ประกอบที่ต้องการคืนกลับมาจากฟิลด์ที่เป็นอาร์เรย์

ตัวอย่างข้อมูลทดสอบ

> db.demo48.insertOne({ "Name": ["David", "Chris", "Sam", "Mike", "Carol"] });

แสดงข้อมูลทั้งหมด

> db.demo48.find();

ผลลัพธ์:

{ "_id": ObjectId("5e270491cfb11e5c34d89901"), "Name": ["David", "Chris", "Sam", "Mike", "Carol"] }

คำสั่งดึงเฉพาะ 2 รายการแรก

> db.demo48.find({}, { Name: { $slice: 2 } });

ผลลัพธ์ที่ได้

{ "_id": ObjectId("5e270491cfb11e5c34d89901"), "Name": ["David", "Chris"] }

รูปแบบการใช้งาน $slice ใน Projection

  • $slice: n (นบวก): ดึง n รายการแรก
  • $slice: -n (ลบ): ดึง n รายการสุดท้าย
  • $slice: [skip, limit]: ข้าม skip รายการ แล้วดึง limit รายการ

เทคนิคนี้เหมาะสำหรับการแสดงผลแบ่งหน้า (pagination) ของข้อมูลในอาร์เรย์ หรือการแสดงตัวอย่าง (preview) โดยไม่ต้องดึงอาร์เรย์ทั้งหมด