Database
db={"trackers":[{"_id":"657b58f0e05669de911e9c4a","userId":"654d08d00149cc5b1ac434e7","date":"2023-12-20","caloriesIntake":[{"foodName":"pizza","quantity":"300","calories":788.7},{"foodName":"test","quantity":"20","calories":100},{"foodName":"cheese","quantity":"20","calories":78.78}],"caloriesBurned":[{"activity":"Basketball, shooting baskets","time":"50","calories":"272.5"},{"activity":"test","time":"20","calories":200}],"__v":5,"neck":20,"weight":70},{"_id":"657b59e7e05669de911e9c5e","userId":"654d08d00149cc5b1ac434e7","date":"2023-12-28","caloriesIntake":[{"foodName":"ratatouille","quantity":"400","calories":"233.2"},{"foodName":"test","quantity":"30","calories":100}],"caloriesBurned":[{"activity":"Swimming butterfly","time":"30","calories":399.5},{"activity":"test","time":"20","calories":400}],"__v":4}]}
Query
db.trackers.aggregate([/** put the userId var here instead this*/{$match:{userId:"654d08d00149cc5b1ac434e7"}},{$group:{_id:null,allCaloriesIntake:{$push:"$caloriesIntake.calories"},allCaloriesBurned:{$push:"$caloriesBurned.calories"}}},{$set:{combinedAllCaloriesIntake:{$map:{input:{$reduce:{/** "flatten" an array of arrays*/input:"$allCaloriesIntake",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},as:"cals",/** map each value to a double*/in:{$toDouble:"$$cals"}}},combinedAllCaloriesBurned:{$map:{input:{$reduce:{/** "flatten" an array of arrays*/input:"$allCaloriesBurned",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},as:"cals",/** map each value to a double*/in:{$toDouble:"$$cals"}}}}},{$project:{/** min, max, avg*/_id:0,avgCaloriesIntake:{$avg:"$combinedAllCaloriesIntake"},minCaloriesIntake:{$min:"$combinedAllCaloriesIntake"},maxCaloriesIntake:{$max:"$combinedAllCaloriesIntake"},minCaloriesBurned:{$min:"$combinedAllCaloriesBurned"},avgCaloriesBurned:{$avg:"$combinedAllCaloriesBurned"},maxCaloriesBurned:{$max:"$combinedAllCaloriesBurned"}}}])