Sử dụng aggregation $project với $slice để lấy N phần tử đầu mảng. Tạo collection:
> db.demo75.insertOne({"Name":["Sam","Mike","Carol","David","Bob","John"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bcd7671bf0181ecc42278") }
Hiển thị tài liệu - mảng 6 phần tử:
> db.demo75.find();
Aggregation lấy 4 phần tử đầu tiên:
> db.demo75.aggregate([ { $project: { Name: { $slice: [ "$Name", 4 ] } } } ]);Kết quả - chỉ 4 phần tử đầu:
Giải thích:
$slice: [array, n]lấy n phần tử đầu (n>0) hoặc n phần tử cuối (n<0). Cú pháp đầy đủ:$slice: [array, skip, limit]. Ví dụ:$slice: ["$Name", 2, 3]bỏ 2, lấy 3 phần tử tiếp theo.