How to make a geospatial query for nested field in a regions-cities-district collection

Hello everyone,
I have a region-city-district dataset that looks something like this:

  • region
    • location (geojson object)
    • cities:
      • location (geojson object)
      • districts
        • location (geojson object)

I created three geospatial indices for each location field, and they are as follows:
"location", "cities.location", "cities.districts.location"

Currently, If I tried to query cities.districts.location, I end up getting the whole region-city-district document, which is not useful since a region has tons of districts. This is an example of a query I tried:
{'cities.districts.location': {$geoIntersects: { $geometry: { type: 'Point', coordinates: [ 50, 50 ] }}}}

I’m trying to find a way where only the city or district returned, and if chosen, the region can be returned too.

Is the only way to separate regions, cities, and districts to their own collection and run a separate query for each?