Working with MongoDB from a program
Introduction:
This assignment gives you a brief introduction to connecting to a MongoDB database from a Python program using pymongo. The database design is denormalized to show how MongoDB might model this problem.
The assignment:
1. Write a simple program to insert and retrieve points of interest for various US cities. Here is sample output from a pair of runs:
Our travel database
Enter i to insert, f to find, q to quit: i
Enter city name: Hayward
Enter state: CA
Any points of interest? (y/n) y
Enter name: CSU East Bay
Enter address: 25800 Carlos Bee Blvd
Any more points of interest? (y/n) y
Enter name: City Hall
Enter address: 777 B St
Any more points of interest? (y/n) n
Enter i to insert, f to find, q to quit: q
Our travel database
Enter i to insert, f to find, q to quit: f
Enter city name: Hayward
Enter state: CA
Points of interest:
CSU East Bay : 25800 Carlos Bee Blvd
City Hall : 777 B St
Enter i to insert, f to find, q to quit: f
Enter city name: Hayward
Enter state: WI
Hayward, WI not found in database
Enter i to insert, f to find, q to quit: f
Enter city name: Dublin
Enter state: CA
Dublin, CA not found in database
Enter i to insert, f to find, q to quit: q
·The separate runs demonstrate that the program does save the data to the database
2. Details:
1. To help with grading, name your database using the same method as for the database schema in the Postgres assignments – lastname+first initial (example: for me, this would be "yangd"
2. There will only be one collection in the database, which will be cities. The documents will have the following fields
1. name of the city, like "Hayward"
2. name of the state, like "CA"
3. a list of points of interest in the city. Each site is a document, with fields:
1. name of the site, like "City Hall"
2. address of the site, like "777 B St"
3. As the sample output indicates, your program should support
1. Inserting a new city into the database – for convenience, you do not have to check for duplicates
2. Finding a city in the database
1. Match both the city and state name
2. Display all points of interest
3. If the city is not found, display an appropriate error message
3. Quitting the program
3. Submit the .py file