Database

db={"order":[{"_id":ObjectId("657b28e5866bd71e3746a4b7"),"status":"Completed","amount":750,"items":[{MedicineId:"6555f3ce551d5ce97ecd5767",Quantity:10},{MedicineId:"6573303a10b77858331909d5",Quantity:10},{MedicineId:"65733a6b1124e7849685b74e",Quantity:15}]}],"medicine":[{"_id":ObjectId("6555f3ce551d5ce97ecd5767"),"name":"Med 1","price":10},{"_id":ObjectId("6573303a10b77858331909d5"),"name":"Med 2","price":15},{"_id":ObjectId("65733a6b1124e7849685b74e"),"name":"Med 3","price":20}]}

Query

db.order.aggregate([{$match:{status:"Completed"}},{$unwind:"$items"},{$group:{_id:{$toObjectId:"$items.MedicineId"},totalQuantity:{$sum:"$items.Quantity"}}},{$lookup:{from:"medicine",/** Replace with the actual name of your Medicine model's collection*/localField:"_id",foreignField:"_id",/** Assuming Medicine _id is used in MedicineId field*/as:"medicineData"}},{$unwind:"$medicineData"},{$project:{_id:0,medicineId:"$_id",medicineName:"$medicineData.name",/** Adjust to your actual field name in Medicine model*/totalQuantity:1,totalAmount:{$multiply:["$totalQuantity","$medicineData.price"]}}}])

Result