Skip to content

MongoDB

These notes are based on the NetNinja tutorial series on YouTube: https://www.youtube.com/playlist?list=PL4cUxeGkcC9h77dJ-QJlwGlZlTd4ecZOA

SQL vs No SQL databases

  • SQL uses tables and rows
  • No SQL uses collections and documents
  • No SQL documents are very much like JSON and objects in Javascript
  • No SQL documents can contain a document inside them

MongoDB Docker Image

  • To create a MongoDB Docker image, add a docker-compose.yml file and add the following content:
services:
    mongodb:
        image: mongo:latest
        container_name: mongodb_sample_project
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: rootpassword
        ports:
            - 27017:27017
        volumes:
            - mongodb_data:/data/db

volumes:
    mongodb_data:
        driver: local
  • To run the container, type docker-compose up -d

MongoDB Compass

MongoDB Compass is a GUI for interacting with MongoDB locally.

  • Install the MongoDB Compass from https://www.mongodb.com/try/download/shell
  • Enter this URL to access MongoDB: mongodb://<username>:<password>@localhost:27017/?authSource=admin

Commands:

  • help returns list of commands
  • exit exits the mongo shell
  • show dbs returns a list of all databases
  • use <db_name> switch to a different database (DB doesn't necessarily need to exist)
  • cls clears the terminal window
  • show collections returns a list of all collection in the current database

MongoDB Shell

Mongosh is an interactive shell for working with MongoDB locally.

  • Install mongosh through homebrew: brew install mongosh
  • Run the shell with this command: mongosh admin -u <username> -p <password>

General Notes

  • MongoDB stores documents as BJSON which stands for binary JSON.
  • A value in a document can be another document (nested documents).