MongoDB-তে অ্যারে এলিমেন্টগুলোর টোটাল যোগফল থেকে প্রথম এলিমেন্ট বাদ দিয়ে বাকিগুলোর যোগফল বের করতে $unwind, $group (with $first, $sum), $project (with $subtract) ব্যবহার করা হয়।
উদাহরণ: ভ্যালুস অ্যারে
> db.demo610.insertOne({ Values: [10, 20, 30, 40, 50] });
পাইপলাইন: প্রথম এলিমেন্ট বাদে বাকির যোগফল
> db.demo610.aggregate([
{ $unwind: "$Values" },
{ $group: {
_id: "$_id",
"1st": { $first: "$Values" },
"All": { $sum: "$Values" }
}},
{ $project: {
_id: "$_id",
"SumOfAllMinus1": { $subtract: [ "$All", "$1st" ] }
}},
{ $group: {
_id: null,
"SumOfAllExcept1stValue": { $sum: "$SumOfAllMinus1" }
}}
]);
আউটপুট:
{ "_id" : null, "SumOfAllExcept1stValue" : 140 }
গণনা: টোটাল = 150, প্রথম = 10, বাকি = 140 (20+30+40+50)।
সরল পদ্ধতি (MongoDB 4.4+):
db.demo610.aggregate([
{ $project: { SumExceptFirst: { $sum: { $slice: ["$Values", 1, { $size: "$Values" }] } } } }
]);
এখানে $slice: [1, size] দিয়ে প্রথম এলিমেন্ট বাদে বাকি স্লাইস করা হয়েছে, তারপর $sum। আরও পঠনীয় এবং দ্রুত।