คุณสามารถใช้ตัวดำเนินการ $slice เพื่อจำกัดอาร์เรย์ ให้เราสร้างคอลเลกชันที่มีเอกสาร ต่อไปนี้เป็นแบบสอบถาม
> db.limitAnArrayDemo.insertOne(
... {
... _id: 101,
... "PlayerName": "Bob",
... "PlayerDetails": {Age:23,isStudent:true},
... "PlayerGameScores": [234,5767,58,67,78,90,1002,576,68,45,23,45,678,89,78 ]
... }
... );
{ "acknowledged" : true, "insertedId" : 101 } ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.limitAnArrayDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{
"_id" : 101,
"PlayerName" : "Bob",
"PlayerDetails" : {
"Age" : 23,
"isStudent" : true
},
"PlayerGameScores" : [
234,
5767,
58,
67,
78,
90,
1002,
576,
68,
45,
23,
45,
678,
89,
78
]
} ต่อไปนี้เป็นแบบสอบถามเพื่อจำกัดองค์ประกอบย่อยอาร์เรย์ใน MongoDB แบบสอบถามด้านล่างจะแสดงเพียง 10 องค์ประกอบจากล่าสุด
> db.limitAnArrayDemo.find({}, {PlayerName:1, PlayerDetails: 1, PlayerGameScores:{$slice: -10}}).pretty(); ต่อไปนี้เป็นผลลัพธ์ที่แสดง 10 PlayerGameScores
{
"_id" : 101,
"PlayerName" : "Bob",
"PlayerDetails" : {
"Age" : 23,
"isStudent" : true
},
"PlayerGameScores" : [
90,
1002,
576,
68,
45,
23,
45,
678,
89,
78
]
}