ใช้ตัวดำเนินการ $slice ในส่วน projection เพื่อจำกัดจำนวนองค์ประกอบในอาร์เรย์ พร้อมกับเลือกฟิลด์ที่ต้องการ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> db.limitAndSliceProjectionDemo.insertOne(
{
"_id" : 101,
"UserName" : "Carol",
"UserAge" : 26,
"UserMesssage" : [
"Hi", "Hello", "Bye", "Awesome", "Good", "Bad", "Nice", "Good Night", "Good Morning"
]
}
);
{ "acknowledged" : true, "insertedId" : 101 }
แสดงเอกสาร:
> db.limitAndSliceProjectionDemo.find().pretty();
{ "_id" : 101, "UserName" : "Carol", "UserAge" : 26, "UserMesssage" : [ "Hi", "Hello", "Bye", "Awesome", "Good", "Bad", "Nice", "Good Night", "Good Morning" ] }
คิวรี่เลือกเฉพาะฟิลด์ UserMesssage และ slice ตั้งแต่ตำแหน่งที่ 2 จำนวน 4 ค่า (ข้าม 2 ค่าแรก ดึง 4 ค่าต่อไป):
> db.limitAndSliceProjectionDemo.find(
{ "UserName" : "Carol" },
{"_id": 0, "UserName":0, "UserAge":0, "UserMesssage": { "$slice": [2,4] }}
).pretty();
รูปแบบ $slice:
{$slice: n}- ดึง n ค่าแรก (n > 0) หรือ n ค่าสุดท้าย (n < 0){$slice: [skip, limit]}- ข้าม skip ค่า แล้วดึง limit ค่า
[2,4] หมายถึง ข้าม "Hi", "Hello" (2 ค่า) แล้วดึง "Bye", "Awesome", "Good", "Bad" (4 ค่า)