CS-340 2-1 Assignment:CRUD in MongoDB
Please see attached for better formatting.
Overview
To understand and make use of any database system, you must learn various techniques associated with the fundamental operations of create, read, update, and delete (CRUD). For this assignment, you will begin by creating databases of document collections and performing basic reading or querying operations to retrieve specific documents from the database system. You will also gain practice updating documents and subdocuments, and removing documents from a database. You will use the mongo shell and mongoimport commands to complete this assignment.
Note: Since this is the only assignment for Module Two, it is longer than a typical assignment. Be sure to begin working on this early in the week.
Prompt
After completing the textbook reading and reviewing the mongoimport tool documentation in the module resources, complete the following tasks using the mongo shell in Apporto.
- The data set for this assignment, city_inspections.json, has already been loaded into the Apporto environment for you. Using the mongoimport tool, load the database “city” with documents found in the city_inspections.json file into the “inspections” collection. Complete this by typing the following commands in the Linux terminal to perform the import in the right directory:
cd /usr/local/datasets/ #change into the Apporto directory with the data sets mongoimport --db city --collection inspections ./city_inspections.json #mongo import utility
TIP: In any Linux systems, commands must be exact and use proper syntax and case sensitivity. - Verify your load by switching to the “city” database and issuing the following queries in the mongo shell:
db.inspections.find({"id" : "10021-2015-ENFO"})
db.inspections.find({"result":"Out of Business"},{"business_name":1}).limit(10)
- Provide screenshots of the results as evidence.
- Using the appropriate commands in the mongo shell, insert a document to the database named “city” within the collection named “inspections.” Use the following key-value pairs as data for your document.
KeyValueid“20032-2020-ACME”certificate_number9998888business_name“ACME Explosives”dateToday’s dateresult“Business Padlocked”sector“Explosive Retail Dealer-999”addressnumber -> 1721
street -> Boom Road
city -> BRONX
zip -> 10463
Be sure the address is inserted as a sub-document, and use the JavaScript function Date() for “Today’s date.” Verify your database creation and insertion using the findOne() function in the mongo shell. Provide a screenshot as evidence. - Answer the following questions using MongoDB queries.
- What is the distinct list of inspection “sector” in the current inspections collection? How many are in the list? Do not count by hand.
- What is the difference in the date data type for the business named “AUSTIN 2012” versus your business document insertion of “Acme Explosives”?
- How many businesses have a “Violation Issued”? (See Value column above.)
- Verify by providing screenshots of the queries and results as evidence.
- Using the appropriate command in the mongo shell, update the document with the ID “20032-2020-ACME” in the collection “inspections” in the database “city” with the information below.
KeyValuebusiness_name”New ACME Flowers”result”Business Re-opened“comments”Flowers after the explosion”
Verify your database update using the appropriate find() function in the mongo shell. Provide a screenshot as evidence. - Using the database “city” with documents found in the “inspections” collection, perform the tasks listed below. Verify by providing screenshots of the results as evidence.
- Update all the documents that contain the key-value pair “city”:”ROSEDALE” in the address subdocument by changing the zip code in the address subdocument to “76114”.
- Remove the first document with the key-value pair “result”:”Violation Issued.”
- Guidelines for Submission
Submit a Word document containing all of your screenshots. Use a screenshot tool, such as the Snipping Tool, for your screenshots and be sure to enlarge the images in the Word document before submitting. This will help make sure that your screenshots are an appropriate size for your instructor to be able to read them. Refer to this Use Snipping Tool to Capture Screenshots guide for help with taking screenshots.