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

การจำกัดฟิลด์และ Slice Projection พร้อมกันใน MongoDB

ใช้ตัวดำเนินการ $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 ค่า)