Hi, as far I could understand your problem, you need a starting database design in NoSQL. I have formed intial very basic data design to start with, you can modify it as per your understanding.
Location: [ {id:"LocationId1", name:"ABC Location-1"}, {id:"LocationId2", name:"ABC Location-2"}, {id:"LocationId3", name:"ABC Location-3"} ]
Restaurant: [ {id:"RestaurantId1", name:"ABC Name"}, {id:"RestaurantId2", name:"ABC Name"}, {id:"RestaurantId3", name:"ABC Name"} ]
Menu: [ {id:"MenuId1", name:"dish name1", ingredients:"a,b,c,d", price:"$5.00"}, {id:"MenuId2", name:"dish name2", ingredients:"a,b,c,d,e", price:"$4.00"} {id:"MenuId3", name:"dish name3", ingredients:"a,b,c,d,y", price:"$3.50"} ]
RestaurantLocationMapping:[ {id:"RestaurantLocationMappingId", LocationId:"LocationId1",RestaurantId:"RestaurantId1"} {id:"RestaurantLocationMappingId", LocationId:"LocationId1",RestaurantId:"RestaurantId2"} ]
RestaurantMenuMapping:[ {{id:"RestaurantMenuMappingId", MenuId:"MenuId1",RestaurantId:"RestaurantId1"} {id:"RestaurantMenuMappingId", MenuId:"MenuId1",RestaurantId:"RestaurantId2"} }]
Query Based on Location -> Fetch LocationId and then select all restaurants which are mapped in RestaurantLocationMapping object to get restaurants list.
Similarly then query RestaurantMenuMapping based on restaurant id to get the menu list.
Note that all Ids should be unique.
Hope it helps you to proceed. Let me know if I didn't understand your question.