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

Giới hạn phần tử mảng trong MongoDB với $slice

Không thể capped sub-collection, dùng $slice thay thế

MongoDB không hỗ trợ capped collection cho mảng con (sub-array). Tuy nhiên, bạn có thể dùng $slice trong aggregation để giới hạn số phần tử trả về.

Dữ liệu điểm số

> db.demo319.insertOne({"Scores": [100, 345, 980, 890]});
> db.demo319.insertOne({"Scores": [903, 10004, 84575, 844]});

Lấy 2 phần tử đầu tiên với $slice

> db.demo319.aggregate([
    { 
        $project: {
            TwoScores: { $slice: ["$Scores", 2] } 
        } 
    }
]);

Kết quả

{ "_id": ObjectId("..."), "TwoScores": [100, 345] }
{ "_id": ObjectId("..."), "TwoScores": [903, 10004] }

Cú pháp $slice:

  • { $slice: ["$array", n] }: Lấy n phần tử đầu
  • { $slice: ["$array", -n] }: Lấy n phần tử cuối
  • { $slice: ["$array", skip, limit] }: Bỏ qua skip phần tử, lấy limit phần tử