Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để bạn giới hạn một phần tử con của mảng trong MongoDB?

Bạn có thể sử dụng toán tử $ slice để giới hạn một mảng. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu. Sau đây là truy vấn

> 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 }

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()

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

Điều này sẽ tạo ra kết quả sau

{
   "_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
   ]
}

Sau đây là truy vấn để giới hạn một phần tử con của mảng trong MongoDB. Truy vấn dưới đây sẽ chỉ hiển thị 10 phần tử từ

cuối cùng
> db.limitAnArrayDemo.find({}, {PlayerName:1, PlayerDetails: 1, PlayerGameScores:{$slice: -10}}).pretty();

Sau đây là kết quả hiển thị 10 PlayerGameScores

{
   "_id" : 101,
   "PlayerName" : "Bob",
   "PlayerDetails" : {
      "Age" : 23,
      "isStudent" : true
   },
   "PlayerGameScores" : [
      90,
      1002,
      576,
      68,
      45,
      23,
      45,
      678,
      89,
      78
   ]
}