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

การใช้ $slice พร้อมช่วงข้อมูล (Range) ใน MongoDB

การตัดอาร์เรย์ด้วย $slice และระบุช่วงตำแหน่ง

ตัวดำเนินการ $slice ใน MongoDB สามารถรับพารามิเตอร์ 2 ค่า เพื่อระบุ ตำแหน่งเริ่มต้น และ จำนวนองค์ประกอบที่ต้องการ (range) ได้

ตัวอย่างข้อมูลทดสอบ

> db.demo54.insertOne({
  "ListOfValues": [100, 2030, 5353, 7364, 635, 535, 524, 423, 2434, 1323, 799874, 90]
});

แสดงข้อมูลทั้งหมด

> db.demo54.find().pretty();

ผลลัพธ์:

{
  "_id": ObjectId("5e27151ecfb11e5c34d89914"),
  "ListOfValues": [100, 2030, 5353, 7364, 635, 535, 524, 423, 2434, 1323, 799874, 90]
}

คำสั่งใช้ $slice ระบุเริ่มต้นที่ตำแหน่ง 5 จำนวน 3 ค่า

> db.demo54.find({}, { "ListOfValues": { $slice: [5, 3] } }).pretty();

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

{
  "_id": ObjectId("5e27151ecfb11e5c34d89914"),
  "ListOfValues": [535, 524, 423]
}

คำอธิบายพารามิเตอร์ $slice: [skip, limit]

  • ค่าแรก (5): ข้าม 5 องค์ประกอบแรก (ดัชนี 0-4) เริ่มที่ดัชนี 5
  • ค่าที่สอง (3): นำองค์ประกอบต่อเนื่อง 3 ค่า (ดัชนี 5, 6, 7)

หมายเหตุ: ดัชนีเริ่มต้นที่ 0 ดังนั้นตำแหน่ง 5 คือค่าลำดับที่ 6 ในอาร์เรย์