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ử