Как грамотно спроектировать MongoDB?
ИМХО, я бы тут взял обычную реляционную БД.
В таких вложенных во вложения вложениях потом поиск по индексам не работает нопремер.
Надо "проектировать" так, чтобы было меньше вложений, но были отсылающие поля. Всё отдельными коллекциями.
Ну типа коллекция (модель) City
{
  name: String,
  region: String,
  country: String
}
И потом, чтобы выбрать все города Чукотки, находящиеся в США, можно будет запросить просто:City
  .find()
  .where('region', 'Чукотка')
  .where('country', 'США')
  .exec(...