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

Truy vấn MongoDB cho tập hợp con được giới hạn trong một mảng


Trong MongoDB, bạn không thể sử dụng giới hạn cho tập hợp con. Tuy nhiên, hãy sử dụng giới hạn trên tài liệu tổng thể. Để hiển thị một số giá trị cụ thể từ một mảng, hãy ưu tiên $ Slice.

Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo319.insertOne({"Scores":[100,345,980,890]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e50ecf6f8647eb59e562064")
}
> db.demo319.insertOne({"Scores":[903,10004,84575,844]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e50ed01f8647eb59e562065")
}

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.demo319.find().pretty();

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

{
   "_id" : ObjectId("5e50ecf6f8647eb59e562064"),
   "Scores" : [
      100,
      345,
      980,
      890
   ]
}
{
   "_id" : ObjectId("5e50ed01f8647eb59e562065"),
   "Scores" : [
      903,
      10004,
      84575,
      844
   ]
}

Sau đây là truy vấn cho tập hợp con được giới hạn trong một mảng -

> db.demo319.aggregate([
... { $project: {TwoScores: { $slice: [ "$Scores", 2 ] } } }
... ])

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

{ "_id" : ObjectId("5e50ecf6f8647eb59e562064"), "TwoScores" : [ 100, 345 ] }
{ "_id" : ObjectId("5e50ed01f8647eb59e562065"), "TwoScores" : [ 903, 10004 ] }