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

MongoDB Query: ดึงเฉพาะจำนวนองค์ประกอบที่กำหนดจากอาร์เรย์ด้วย $slice

จำกัดจำนวน Element ในอาร์เรย์ผลลัพธ์ด้วย $slice ใน Aggregation

บทความนี้สาธิตการใช้ $slice ในขั้นตอน $project ของ Aggregation Pipeline เพื่อดึงเฉพาะ N ตัวแรกของอาร์เรย์

ขั้นตอนที่ 1: สร้าง Collection และเพิ่มข้อมูลตัวอย่าง

> db.demo75.insertOne({"Name":["Sam","Mike","Carol","David","Bob","John"]});
{ "acknowledged": true, "insertedId": ObjectId("5e2bcd7671bf0181ecc42278") }

ขั้นตอนที่ 2: แสดงข้อมูลทั้งหมด

> db.demo75.find();

ผลลัพธ์: อาร์เรย์ Name มี 6 ค่า

{ "_id": ObjectId("5e2bcd7671bf0181ecc42278"), "Name": ["Sam", "Mike", "Carol", "David", "Bob", "John"] }

ขั้นตอนที่ 3: ใช้ $slice จำกัด 4 ตัวแรก

> db.demo75.aggregate([
    { $project: { Name: { $slice: ["$Name", 4] } } }
]);

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

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

สรุป: $slice: ["$arrayField", n] ใน $project จะคืนค่า n Element แรกของอาร์เรย์ (n > 0) หรือ n Element สุดท้าย (n < 0) เหมาะสำหรับ Pagination ภายในอาร์เรย์ หรือการ Preview ข้อมูล