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

ดึงเฉพาะรายการแรกของอาร์เรย์ใน MongoDB

ใช้ตัวดำเนินการ $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} - รายการสุดท้าย