Nếu bạn muốn phần tử đầu tiên từ mảng, bạn có thể sử dụng $ slice cùng với $ gte. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo640.insertOne({Name:"John","Scores":[80,90,75]}); { "acknowledged" : true, "insertedId" : ObjectId("5e9c2eb86c954c74be91e6e0") } > db.demo640.insertOne({Name:"Chris","Scores":[85,70,89]}); { "acknowledged" : true, "insertedId" : ObjectId("5e9c2ece6c954c74be91e6e1") }
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.demo640.find();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e9c2eb86c954c74be91e6e0"), "Name" : "John", "Scores" : [ 80, 90, 75 ] } { "_id" : ObjectId("5e9c2ece6c954c74be91e6e1"), "Name" : "Chris", "Scores" : [ 85, 70, 89 ] }
Sau đây là truy vấn để chiếu các mảng bằng sing $ slice -
> db.demo640.find({Scores:{$gte:85}},{ "Scores": {$slice : 1}});
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e9c2eb86c954c74be91e6e0"), "Name" : "John", "Scores" : [ 80 ] } { "_id" : ObjectId("5e9c2ece6c954c74be91e6e1"), "Name" : "Chris", "Scores" : [ 85 ] }