Database
[{"location":"Tokyo","attraction":{"food":{"food_0":{"name":"Sushi","price":100,"restaurant":"Ookinza"},"food_1":{"name":"Sashimi","price":200,"restaurant":"Hibiki"},"food_2":{"name":"N/A","price":"N/A","restaurant":"N/A"}}}},{"location":"Toronto","attraction":{"food":{"food_0":{"name":"Raman","price":300,"restaurant":"Kinto"},"food_1":{"name":"Bubble tea","price":200,"restaurant":"Fresh Fruit"},"food_2":{"name":"N/A","price":"N/A","restaurant":"N/A"}}}},]
Query
db.collection.aggregate([{"$addFields":{"test":{"$anyElementTrue":{"$map":{"input":{"$objectToArray":"$attraction.food"},"as":"t","in":{$eq:["$$t.v.restaurant","Hibiki"]}}}}}},{$match:{test:true}},{"$unset":"test"}])