Để cắt mảng (lấy một phần), sử dụng toán tử $slice trong projection của MongoDB. Tạo collection:
> db.demo503.insertOne({_id:1,Name:"John",Subject:["MySQL","Java","C"]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo503.insertOne({_id:2,Name:"David",Subject:["MongoDB","C++","Python"]});
{ "acknowledged" : true, "insertedId" : 2 }
Hiển thị dữ liệu:
> db.demo503.find().pretty();
Kết quả:
Lấy 1 phần tử cuối cùng của mảng Subject cho tài liệu _id=2:
> db.demo503.find({_id:2}, { 'Subject': { $slice: -1 }});Kết quả chỉ trả về phần tử cuối ("Python"):
Giải thích $slice:
$slice: n- lấy n phần tử đầu tiên$slice: -n- lấy n phần tử cuối cùng$slice: [skip, limit]- bỏ qua skip phần tử, lấy limit phần tử tiếp theo
Ví dụ: { $slice: [1, 2] } lấy 2 phần tử từ vị trí thứ 2 (index 1).