ใช้ตัวดำเนินการ $slice ในส่วน projection เพื่อดึงเฉพาะองค์ประกอบแรกของอาร์เรย์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> db.gettingFirstItemInArrayDemo.insertOne(
{
"UserId": 101,
"UserName":"Carol",
"UserOtherDetails": [
{"UserFriendName":"Sam"},
{"UserFriendName":"Mike"},
{"UserFriendName":"David"},
{"UserFriendName":"Bob"}
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfca52bf3115999ed51205") }
แสดงเอกสาร:
> db.gettingFirstItemInArrayDemo.find().pretty();
คิวรี่ดึงเฉพาะรายการแรกของ UserOtherDetails (ใช้ $slice: 1):
> db.gettingFirstItemInArrayDemo.find({"UserId":101}, {UserOtherDetails:{$slice: 1}});การใช้งาน $slice สำหรับการ paging:
{$slice: 1}- รายการแรก{$slice: [0, 1]}- ข้าม 0 ดึง 1 (เหมือนด้านบน){$slice: [1, 1]}- ข้าม 1 ดึง 1 (รายการที่ 2){$slice: -1}- รายการสุดท้าย