Sử dụng toán tử $slice trong projection để giới hạn số phần tử mảng trả về. Tạo collection:
> db.demo579.insertOne({
... "_id" : 101,
... "details" : { "FirstName" : "John" },
... "Marks" : [ 56,78,90,34,45,74 ]
... });
{ "acknowledged" : true, "insertedId" : 101 }
Hiển thị đầy đủ:
> db.demo579.find().pretty();
{ "_id" : 101, "details" : { "FirstName" : "John" }, "Marks" : [ 56, 78, 90, 34, 45, 74 ] }
Truy vấn chỉ lấy 1 phần tử đầu của mảng Marks, ẩn details và _id:
> db.demo579.find({},{Marks : {$slice : 1} ,"details":0,"_id":0})
Kết quả:
{ "Marks" : [ 56 ] }
Các dạng $slice:
{$slice: n}: Lấy n phần tử đầu (n > 0){$slice: -n}: Lấy n phần tử cuối{$slice: [skip, limit]}: Bỏ qua skip phần tử, lấy limit phần tử