# MongoDB Academia - Introduction to Modern Databases

## Introduction

As part of the MongoDB for Academia program, we are pleased to announce the publication of a new course, Introduction to Modern Databases, and related teaching materials.

The course materials are designed for the use of educators teaching MongoDB in universities, colleges, technical bootcamps, or other learning programs.

In this article, we describe why we've created this course, its structure and content, and how educators can use this material to support hands-on learning with the MongoDB Web Shell.

## Table of Contents

- Course Format
- Why Create This Course?
- Course Outline
- Course Lessons
- What is in a Lesson
- Using the MongoDB Web Shell
- What is MongoDB for Academia?
- Course Materials and Getting Involved in the MongoDB for Academia Program

## Course Format

Introduction to Modern Databases has been designed to cover the A-Z of MongoDB for educators.

The course consists of 22 lessons in slide format. Educators are welcome to teach the entire course or select individual lessons and/or slides as needed.

Quiz questions with explained answers and instructions for hands-on exercises are included on slides interspersed throughout.

The hands-on activities use the browser-based MongoDB Web Shell, an environment that runs on servers hosted by MongoDB.

This means the only technical requirement for these activities is Internet access and a web browser.

The materials are freely available for non-commercial use and are licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

## Why Create This Course?

We created this course in response to requests from the educational community for support bridging the gap in teaching materials for MongoDB.

We received many requests from the academic community for teaching materials on document databases, MongoDB's features, and how to model schemas using the document model.

We hope this material will be a valuable resource for educators teaching with MongoDB in a variety of contexts, and their learners.

## Course Outline

The course compares and contrasts relational and non-relational databases, outlines the architecture of MongoDB, and details how to model data in MongoDB. The included quizzes and hands-on exercises support active learning and retention of key concepts and skills.

This material can support a wide variety of instructional objectives, including learning best practices for querying data and structuring data models in MongoDB, and using features like transactions and aggregations.

## Course Lessons

The course consists of 22 lessons across a wide range of MongoDB topics.

The lessons can be taught individually or as part of a wider selection of lessons from the course.

The lessons are as follows:

-   What is a modern general purpose database?
-   SQL and MQL
-   Non-relational databases
-   Querying in SQL and in MQL
-   When to use SQL and when to use MQL
-   Documents and MongoDB
-   MongoDB is a data platform
-   MongoDB architecture
-   MongoDB Atlas
-   The MongoDB Query Language (MQL)
-   Querying complex data with MQL
-   Querying data with operators and compound conditions
-   Inserting and updating data in MongoDB
-   Deleting data in MongoDB
-   The MongoDB aggregation framework
-   Querying data in MongoDB with the aggregation framework
-   Data modeling and schema design patterns
-   Sharding in MongoDB
-   Indexing in MongoDB
-   Transactions in MongoDB
-   Change streams in MongoDB
-   Drivers, connectors, and the wider ecosystem

## What is in a Lesson

Each lesson covers the specified topic and includes a number of quizzes designed to assess the material presented.

Several lessons provide hands-on examples suitable for students to follow themselves or for the educator to present in a live-coding fashion to the class.

This provides a command line interface similar to the Mongo Shell but which you interact with through a standard web browser.

## Using the MongoDB Web Shell

The MongoDB Web Shell is ideal for use in the hands-on exercise portions of Introduction to Modern Databases or anytime a web browser-accessible MongoDB environment is needed.

The MongoDB Web Shell provides a command line interface similar to the Mongo Shell but which you interact with through a standard web browser.

Let us walk through a small exercise using the MongoDB Web Shell:

-   First, open another tab in your web browser and navigate to the MongoDB Web Shell.
-   Now for our exercise, let's create a collection for cow documents and insert 10 new cow documents into the collection. We will include a name field and a field with a varying value of 'milk'.

``` javascript
for(c=0;c<10;c++) {
    db.cows.insertOne( { name: "daisy", milk: c } )
}
```

-   Let's now use the follow query in the same tab with the MongoDB Web Shell to find all the cow documents where the value for milk is greater than eight.

``` javascript
db.cows.find( { milk: { $gt: 8 } } )
```

-   The output in the MongoDB Web Shell will be similar to the following but with a different ObjectId.

``` json
{ "_id": ObjectId(5f2aefa8fde88235b959f0b1e), "name" : "daisy", "milk" : 9 }
```

-   Then let's show that we can perform another CRUD operation, update, and let's change the name of the cow to 'rose' and change the value of milk to 10 for that cow.

``` javascript
db.cows.updateOne( { milk: 9 }, { $set: { name: "rose" }, $inc: { milk: 1 } } )
```

-   We can query on the name of the cow to see the results of the update operation.

``` javascript
db.cows.find( { name: "rose" } )
```

This example gives only a small taste of what you can do with the MongoDB Web Shell.

## What is MongoDB for Academia?

MongoDB for Academia is our program to support educators and students.

The program offers educational content, resources, and community for teaching and learning MongoDB, whether in colleges and universities, technical bootcamps, online learning courses, high schools, or other educational programs.

For more information on MongoDB for Academia's free resources and support for educators and students, visit the MongoDB for Academia website.

## Course Materials and Getting Involved in the MongoDB for Academia Program

All of the materials for Introduction to Modern Databases can be downloaded here.

If you also want to get involved and learn more about the MongoDB Academia program, you can join the email list at  and join our community forums.