Sử dụng $unwind, $group với $first và $sum để tính tổng tất cả phần tử trừ phần tử đầu. Tạo collection:
> db.demo610.insertOne({Values:[10,20,30,40,50]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9747b8f57d0dc0b182d62e") }
Hiển thị dữ liệu:
> db.demo610.find().pretty()
Pipeline: Unwind → Group lấy first và sum tất cả → Project trừ first khỏi sum → Group tổng cuối:
> db.demo610.aggregate([ ... {$unwind:"$Values"}, ... {$group:{"_id":"$_id", "1st":{$first:"$Values"}, "All":{$sum:"$Values"}}}, ... {$project:{"_id":"$_id", "SumOfAllMinus1st":{$subtract:["$All","$1st"]}}}, ... {$group:{"_id":null, "SumOfAllExcept1stValue":{$sum:"$SumOfAllMinus1st"}}} ... ]);Kết quả: 20+30+40+50 = 140
Cách hiện đại (MongoDB 4.4+): Dùng
$reducehoặc$slice+$sumđơn giản hơn:{$project: {sum: {$sum: {$slice: ["$Values", 1, {$size: "$Values"}]}}}}(bỏ phần tử index 0).