การจำกัด Array Sub-element ใน MongoDB ด้วย $slice
ใช้ $slice operator เพื่อจำกัดจำนวน elements ใน Array ตัวอย่างการสร้าง Collection และ Document:
> db.limitAnArrayDemo.insertOne({
_id: 101,
"PlayerName": "Bob",
"PlayerDetails": {Age:23, isStudent:true},
"PlayerGameScores": [234,5767,58,67,78,90,1002,576,68,45,23,45,678,89,78]
});
{ "acknowledged" : true, "insertedId" : 101 }
แสดงข้อมูลทั้งหมด
> db.limitAnArrayDemo.find().pretty();
ผลลัพธ์: PlayerGameScores มี 15 ค่า
จำกัดแสดง 10 ค่าสุดท้าย ($slice: -10)
> db.limitAnArrayDemo.find({}, {PlayerName:1, PlayerDetails: 1, PlayerGameScores:{$slice: -10}}).pretty();
ผลลัพธ์: แสดงแค่ 10 ค่าสุดท้ายของ PlayerGameScores
{
"_id" : 101,
"PlayerName" : "Bob",
"PlayerDetails" : { "Age" : 23, "isStudent" : true },
"PlayerGameScores" : [ 90, 1002, 576, 68, 45, 23, 45, 678, 89, 78 ]
}
หมายเหตุ: ค่า Negative ของ $slice (-10) หมายถึงดึงจากท้าย陣列 ค่า Positive (+10) จะดึงจากหัว Array