Database
[{"item":"journal","warehouseParent":"A","instock":[{"warehouse":"B","qty":5},{"warehouse":"C","qty":15}]},{"item":"paper","warehouseParent":"X","instock":[{"warehouse":"A","qty":60},{"warehouse":"G","qty":15},{"warehouse":"G","qty":16}]}]
Query
db.collection.aggregate([{$match:{$or:[{"warehouseParent":"A"},{"instock.warehouse":"A"}]}},{$addFields:{instock:{$cond:{if:{$eq:["$warehouseParent","A"]},then:"$$REMOVE",else:{$filter:{input:"$instock",cond:{$eq:["$$this.warehouse","A"]}}}}}}}])