Database
[{"toystore":22,"toystore_name":"Toystore A","toys":[{"toy":"buzz","code":17001,"price":500},{"toy":"woddy","code":17002,"price":1000},{"toy":"pope","code":17003,"price":300}]},{"toystore":11,"toystore_name":"Toystore B","toys":[{"toy":"jessie","code":17005,"price":500},{"toy":"rex","code":17006,"price":2000}]}]
Query
/**
original data* var originalData=[* {* "toys.code": 17001,* "quantify":2* },* {* "toys.code": 17003,* "quantify":4* },* {* "toys.code": 17005,* "quantify":5* },* {* "toys.code": 17005,* "quantify":6* }* ]* let filters = [];* originalData.forEach((data) => {* filters.push({ "toys.code": data.code });* });* filters= [* {* "toys.code": 17001* },* {* "toys.code": 17003* },* {* "toys.code": 17005* },* {* "toys.code": 17005* }* ]* $match: {* $or: filters* }*/db.collection.aggregate([{$unwind:"$toys"},{$match:{$or:[{"toys.code":17001},{"toys.code":17003},{"toys.code":17005},{"toys.code":17005}],}},{$group:{_id:"$toystore_name",toy_array:{$push:{price_original:"$toys.price",/** price_total: { $multiply: ["$toys.price", qunantify] }*/toy:"$toys.toy"},},},},])