Database
[{"country":"UK","shops":[{"city":"London","fruits":["banana","apple"]},{"city":"Birmingham","fruits":["banana","pineapple"]}]},{"country":"DE","shops":[{"city":"Munich","fruits":["banana","strawberry"]},{"city":"Berlin","fruits":["kiwi","pineapple"]}]}]
Query
db.collection.aggregate([{$set:{max_category:{$max:{$reduce:{input:"$shops",initialValue:0,in:{$max:["$$value",{$map:{input:"$$this.fruits",as:"f",in:{$toInt:{$getField:{field:"k",input:{$first:{$filter:{input:{$objectToArray:{1:["apple"],2:["banana","kiwi"],3:["pineapple","strawberry"]}},as:"val",cond:{$in:["$$f","$$val.v"]}}}}}}}}}]}}}}}}])