1

Hey I am trying to come up with a good schema for storing country, state, city, zip in a NoSQL(MongoDB) and I wanted from feed back on this schema.

{
    _id: xxxxx,
    country: {
        name: "United States",
        currency: "USD",
        states: {
                { 
                name: "NY"
                cites {
                      "name": Bronx
                     }
                }
        }
    }
}

Basically what I was going for was storing a country as a top level. Then countries have states as an array and states has cities as an array and cities will have an array of zip codes. THoughts please?

Community
  • 1
  • 1
Devin Dixon
  • 11,553
  • 24
  • 86
  • 167

2 Answers2

2

I think your schema is okay in mongo you can index array fields for perf and query subdocuments and partial arrays with $slice.

Scott Willeke
  • 8,884
  • 1
  • 40
  • 52
0

Actually, cities shouldn't have arrays of zip-codes as those can span across cities. I would instead have zip codes have of states and then cities. See the last area of this page for details: http://www.carrierroutes.com/ZIPCodes.html

jschorr
  • 3,034
  • 1
  • 17
  • 20