Database

[{item:"journal",instock:[{warehouse:"A",qty:5},{warehouse:"C",qty:15}]},{item:"notebook",instock:[{warehouse:"C",qty:5}]},{item:"paper",instock:[{warehouse:"A",qty:60},{warehouse:"G",qty:15}]},{item:"planner",instock:[{warehouse:"A",qty:40},{warehouse:"B",qty:5}]},{item:"postcard",instock:[{warehouse:"B",qty:15},{warehouse:"G",qty:35}]}]

Query

db.collection.aggregate([{"$match":{"instock.warehouse":"G"}},{"$set":{"instock":{"$filter":{"input":"$instock","cond":{"$eq":["$$this.warehouse","G"]}}}}}])

Result