- Install Homebew, a free and open-source software package management system that simplifies the installation of software on Apple’s macOS operating system.
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)“
- Ensure that you’re running the newest version of Homebrew and that it has the newest list of formulae available from the main repository
brew update
- To install the MongoDB binaries, issue the following command in a system shell:
brew install mongodb
- Create a data directory (-p create nested directories, but only if they don’t exist already)
mkdir -p ./data/db
- Before running mongodb for the first time, ensure that the user account running mongodb has read and write permissions for the directory
sudo chmod 765 data
- Run MongoDB
mongod –dbpath data/db
- To stop MongoDB, press Control+C in the terminal where the mongo instance is running
Install PyMongo
pip install pymongo
- In a Python interactive shell:
import pymongo
from pymongo import MongoClient
- Use RoboMongo https://robomongo.org/ to visualize the DB scheme:
- Create a Connection
client = MongoClient()
- Access Database Objects
MongoDB creates new databases implicitly upon their first use.
db = client.test
- Query for All Documents in a Collection
cursor = db.restaurants.find()
for document in cursor: print(document)
- Query by a Top Level Field
cursor = db.restaurants.find({“borough”: “Manhattan”})
for document in cursor: print(document)
- Query by a Field in an Embedded Document
cursor = db.restaurants.find({“address.zipcode”: “10075”})
for document in cursor: print(document)
- Query by a Field in an Array
cursor = db.restaurants.find({“grades.grade”: “B”})
for document in cursor: print(document)
- Insert a Document
Insert a document into a collection named restaurants. The operation will create the collection if the collection does not currently exist.
result = db.restaurants.insert_one(
{
“address”: { “street”: “2 Avenue”, “zipcode”: “10075”, “building”: “1480”, “coord”: [-73.9557413, 40.7720266] },
“borough”: “Manhattan”,
“cuisine”: “Italian”,
“grades”: [
{ “date”: datetime.strptime(“2014-10-01”, “%Y-%m-%d“), “grade”: “A”, “score”: 11 },
{ “date”: datetime.strptime(“2014-01-16”, “%Y-%m-%d“), “grade”: “B”, “score”: 17 } ],
“name”: “Vella”,
“restaurant_id”: “41704620”
})
result.inserted_id