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

Cắt mảng (slice) trong trường populated MongoDB

Để 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).