Database
db={"stock":[{"fruit_id":"1","name":"apples","stock":100},{"fruit_id":"2","name":"oranges","stock":50},{"fruit_id":"3","name":"plums","stock":60}],"orders":[{"order_id":"001","ordered_fruits":[{"fruit_id":"1","name":"apples","ordered":5},{"fruit_id":"3","name":"plums","ordered":20}]},{"order_id":"002","ordered_fruits":[{"fruit_id":"2","name":"oranges","ordered":30},{"fruit_id":"3","name":"plums","ordered":20}]}]}
Query
db.stock.aggregate([{"$lookup":{"from":"orders","let":{"fruitId":"$fruit_id"},"pipeline":[{"$unwind":"$ordered_fruits"},{"$match":{"$expr":{"$eq":["$ordered_fruits.fruit_id","$$fruitId"]}}}],"as":"orders"}},{"$project":{"ordered":{"$sum":"$orders.ordered_fruits.ordered"},"fruit_id":1,"name":1,"stock":1}}])