Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Giới hạn số phần tử mảng trả về MongoDB với $slice

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.