4.58 out of 5
4.58
417 reviews on Udemy

MongoDB 3.2: Professional Developer

Complete guide
Instructor:
Hubert Łyczek
2,711 students enrolled
English [Auto]
feel like a duck in water (MongoDB world)

Why MongoDB?

MongoDB is a leading non-relational database. It is used by many well known, large companies like: Google, Facebook, eBay, UPS and many more.

Learn from a professional

I’m a certified MongoDB developer and certified MongoDB administrator.

You can verify my certificates using a link from the promo video. Here are the license numbers:

  • developer: 463-864-356
  • administrator: 106-358-385

I’ve been working with MongoDB for quite some time, and I can say that I know MongoDB very well.

MongoDB certification

Although this course was not designed for the needs of the certification process, its content, especially quizzes, can be a tremendous help in preparing to pass the MongoDB developer certificate. Read more about quizzes below.

Live course with support

This course will be upgraded based on your feedback as this course is for you and your thoughts, problems and questions are very important for me.

I will help you a much as I can. 

Quick overview

This course is designed to make you a real, professional MongoDB developer with deep understanding of many different MongoDB features. After this course you will know everything you need, to work with MongoDB comfortably. This course is a MongoDB complete training. 

Resources

So that you can follow all the queries executed during this course, I have attached a file that contains all the collections I’ve used. So you will be able to repeat every query and check everything in practice. You will be able to perform your own queries.

Quizzes

For many sections you will find Quizzes. These quizzes contain about 150 questions in total. These quizzes are designed to be hard. They are not there to make you feel good because you know the answer to every single question. They are there to remind you of some things, to draw your attention to certain cases and to make you a better developer at the end. And this is the goal of this course.

Homeworks

For two sections: CRUD and Aggregation you will find some homework. You will need to write some queries, to master your skills. For each homework you will find solutions, so you can compare your queries or just take a peep to help yourself out.

SQL backround

In some cases we will compare MongoDB to relational databases, to see the differences. This, I think, will be quite useful if you have a background in relational databases.

But you don’t have to be familiar with relational databases at all to learn MongoDB

MongoDB version

This course is based on MongoDB 3.2. It is the newest stable release, ready for production.

Course version

Current version:       1.0.2         02.03.2017         Better voice for lectures from 20 to 28
                             1.0.1         31.01.2017          Improved sound for sections 2, 3 and 4

Work in progress

Closed captions                       17.04.2017         done for lectures from 1 to 33 (25%)

Introduction to MongoDB

1
What is MongoDB?

In this lecture we will discuss what MongoDB database is. We will also discuss the three very popular terms which try to describe MongoDB.

2
Main MongoDB features

In this lecture we will be talking about the two main advantages of MongoDB.

3
MongoDB limitations

In this lecture we will be talking about MongoDB's limitations. Don't worry, we will learn how to deal with them during this course.

4
MongoDB components

In this lecture we will be talking about the components of MongoDB. We will focus on two most important of them:

  • mongod
  • mongo

MongoDB installation

1
MongoDB editions and versions

In this lecture we will be talking about different MongoDB editions and versions. We will choose the MongoDB edition for us.

2
Operating systems

MongoDB can be installed on many different operating systems. We will see the full list and we will choose two operating systems for us.

3
Installation: Ubuntu 14.04 LTS

In this video we will be installing MongoDB on Ubuntu 14.04 LTS. If you want to install MongoDB on Windows, skip this lecture and go to lecture 9.

4
Installation: Ubuntu 14.04 LTS - all steps
5
Installation: Windows

In this video we will be installing MongoDB on Windows. After this video you will be ready for action!

MongoDB server and clients

1
Run, connect to and shutdown the MongoDB server

In this lecture we will be talking about how to:

  • run
  • connect to 
  • shutdown 

the MongoDB server. 

We will discuss the most important options for mongod and mongo.

2
Client: the mongo shell

In this lecture we will be talking about mongo. This is the default client, shipped with the MongoDB installation. After this video You will understand this client.

3
Client: Robomongo

In this lecture we will be talking about Robomongo. This is a third party client that can be used to interact with the database. We will be using this client in section 10.

Data representation

1
Quick overview

In this short video we will explain what the data structures in MongoDB are. We will compare them with data structures used by relational databases.

2
Mongo: the first interaction with the data

In this video we will interact with the MongoDB server in order to become more familiar with databases, collections and documents. We will become more familiar with the data representation before we discuss them in more detail.

3
Document in detail

In this lecture we will discuss MongoDB documents in detail. We will be talking about text and binary representations of documents. We will be able to understand the difference between JSON and BSON. We will also discuss important BSON data types.

4
Collection in detail

In this lecture we will discuss MongoDB collections in detail. We will focus mostly on polimorphism and how to create collections.

5
Mongo: databases, collections, documents

As know we understand the data representation used by MongoDB, we know what databases, collections and documents are, time to interact with them.

Resources

1
Resources

In this video we will be talking about the resources prepared for this course. We will import all the collections used during this course, so You will be able to repeat every query and check everything in practice.

2
resources.zip file

CRUD

1
Introduction

In this video we will briefly discuss the methods used to perform CRUD operations. All of them will explained in detail in the next lectures.

2
Insert: method definition

In this video we will discuss the insert() method, which is used to insert new documents into a collection.

3
Insert: inserting a single document

In this video we will be talking about inserting single documents into the database. We will also discuss primary keys.

4
Insert: inserting many documents

In this lecture we will be talking about how to insert many documents at the same time.

5
Insert: document restrictions

In this lecture we will be talking about some very important restrictions that affect documents in MongoDB.

6
Find: methods definition

In this video we will discuss the find() and findOne() methods, which are used to retrieve documents from the database.

7
Find: cursor

The find() method returns always a cursor. In this video we will learn what a cursor is and how it works.

8
Find: basic operators

In this video we will be talking about basic operators used for creating matching criteria. These operators are:

  • $eq
  • $ne
  • $gt
  • $gte
  • $lt
  • $lte
  • $in
  • $nin
9
Find: logical operators

In this video we will be talking about logical operators. These operators are used to create more complex matching criterias. We will discuss:

  • $and
  • $or
  • $nor
  • $not
10
Find: document structure conditions

As polymorphism allows us to store unstructured data we must know how to deal with this. In this video we will discuss two operators:

  • $exists
  • $type
11
Find: embedded documents

As this is completely normal to have documents embedded within other documents, we will discuss in this video how to create conditions for embedded documents.

12
Find: $where

In this video will be talking about a specific query operator, which is $where. We will discuss whether we should avoid it, and if so, why and how to do this.

13
Find: arrays

Documents can contain arrays. In this video we will be learning how to create conditions for arrays. This lecture covers these operators:

  • $all
  • $size
  • $elemMatch
14
Find: projection

In this lecture, we will be talking about projection, so the ability to limit returned data.

15
Find: projection operators

In this video we will continue learning projection, but in this lecture we will focus on projection operators:

  • $
  • $elemMatch
  • $meta
  • $slice
16
Find: sorting

It is very common that we want to retrieve sorted data from the database. In this video we will be learning how to do this.

17
Find: sorting unstructured data

In this lecture we will be talking about sorting unstructured data. As polimorphism allows us to store any documents we want to, in the same collection, some documents can have values of different types in the same field or not have such a field at all.

18
Find: limit results

In this lecture we will be talking about limiting the number of returned documents. This lecture covers two cursor methods:

  • cursor.limit()
  • cursor.skip(
19
Update: method definition

In this video we will discuss the update() method, which is used to change existing documents.

20
Update: replacing the whole document

In this short lecture we will be learning how to replace the whole document in a collection.

21
Update: modification od selected fields

In this video we will be talking about how to modify the selected fields of a document. We will discuss these operators:

  • $set
  • $unset
22
Update: arithmetic modifications

In this lecture we will be talking modifying numbers. We will discuss these operators:

  • $inc
  • $mul
  • $min
  • $max
23
Update: array - add new elements

In this video we will be learning how to add new elements to an array. We will discuss these operators:

  • $addToSet
  • $push
24
Update: array - remove elements

In this lecture we will be learning how to remove specific elements from an array. We will discuss these operators:

  • $pop
  • $pullAll
  • $pull
25
Update: array - specific elements

In this lecture, we will be talking about modifying specific elements in arrays. We will be doing this using:

  • a number that specifies the position in an array
  • the special operator: $
26
Update: upsert

In this video we will be talking about upserting documents. We will learn what upserting is, and what fields upserted documents contain.

27
Update: multiple documents

In this video we will be learning how to modify multiple documents, as by default MongoDB modifies only single documents.

28
Remove: method definition

In this video we will discuss the remove() method, which is used to change delete documents.

29
Remove: deleting in action

In this video we will be learning how to delete documents from a collection. We will also learn how to delete the whole collection.

30
Inserting, modifying, deleting in 3.2

In this video we will be learning about new methods to insert, modify and delete documents, introduced in version 3.2. We will discuss:

  • insertOne()
  • insertMany()
  • updateOne()
  • updateMany()
  • deleteOne()
  • deleteMany()
31
Bulk operations (new in 3.2)

In this lecture we will be talking about performing bulk operations, in other words, the ability to execute many operations using a single query. We will see how to do this, and we will learn why bulk operations rock!

32
Homework: tasks
33
Homework: solutions
34
Quiz

Indexes

1
Introduction

In this video we will learn what indexes are and what they are used for. We will learn how they speed up our queries.

2
Create, list and delete indexes

In this lecture we will be learning about how to create, list and delete indexes in MongoDB. We will discuss these methods:

  • db.{collection}.createIndex()
  • db.{collection}.getIndexes()
  • db.{collection}.dropIndex()
  • db.{collection}.dropIndexes()
3
Single field index (+explain +hint)

In this lecture we will discuss single field indexes in detail. To check how our indexes are used by our queries we will use the cursor.explain() method. We will learn how to interpret the results returned by this method. As MongoDB automatically chooses an index for our query, we will learn how to choose an index ourselves.

4
Single field index: sorting

In this video we will be learning how indexes are used to sort our data. We will also discuss when this is possible and when it is not.

5
Index characteristics

In this video we will be learning about the characteristics of indexes, using examples.

We will observe in action how indexes improve performance. We will also see what happend during index creation and what is the difference between creating indexes in the foreground and in the background.

6
Compound index

In this video we will be learning how to create compound indexes and when these indexes are used. We will learn what index prefixes are.

7
Compound index: sorting

In this video we will be talking about using compound indexes for sorting. We will learn when a compound index can be used for sorting and when it cannot.

8
Unique and sparse indexes

In this video we will be learning about two special types of single and compound indexes:

  • unique indexes
  • sparse indexes

We will discuss how to create such indexes and what the consequences of creating such indexes are.

9
Multikey indexes

Multikey index is not a separate type of index. In this leacture we will be learning what is and how it restricts the form of stored documents.

10
Covered query

Covered queries are very fast! We will be learning when we can and how to write a covered query.

11
Special indexes

In this lecture we will briefly discuss special types of indexes. They will be explained in detail in the next section.

12
Quiz

Special MongoDB features

1
Full text search

In this lecture we will be talking about full text search. We will learn what is full text search and what we must do in order to use it. We will discuss the $text operator. We will also learn about two key concepts:

  • stemming
  • stop words
2
Full text search: case sensitivity and diacritic characters

As text contains capital letters and in many languages also diacritic characters, in this video we will be learning how to take them into account when writing our queries.

3
Full text search: compound index

In this lecture we will be learning how to create and use compound text indexes.

4
Full text search: score and sorting

In this lecture we will be learning how to sort results, returned by text search. We will be learning how MongoDB calculates a score for every document and how we can influence this process.

5
Full text search: restrictions and performance

In this lecture we will discuss restrictions and performance considerations for text indexes. We will discuss size of a text index and a useful strategy called partitioning.

6
Geospatial support

In this video we will be talking about two different surfaces supported by MongoDB:

  • flat
  • spherical

We will learn what is the difference beween these two.

We will also discuss different data representations that are used to represent geographical coordinates including legacy and GeoJson coordinates.

7
Geospatial support: 2d

In this video we will discuss 2d support (flat surface). We will larn how to create queries using the $near and $geoWithin operators. We will see how to specify maximum and minimum distance for our searches.

We will also learn when not to use this type of surface and why.

8
Geospatial support: 2dsphere

In this video we will be talking about 2dsphere indexes (spherical surface). We will write some queries using coordinates of simple points and real capitals. 

9
Quiz

Collections

1
Introduction

In this video we will be talking what are the three main types of collections. We will also mention validation.

2
Create collection manually and primary index

In this video we will be talking about manual collection creation. This is important as TTL collections and capped collections can be created only manually. We will see how to use the createCollection() method. We will use it to create a collection without primary key.

3
Capped collections

In this lecture we will be talking about capped collections. We will learn how to create and configure a new capped collection. We will discuss how capped collections work. We will learn how to check if a collection is capped. We will also discuss some of the restrictions.

4
TTL collections

In this lecture we will be talking about TTL collections. We will learn how to create apropriate index from a TTL collection using expireAfterSecond parameter. We will observe in action how this works and what is the maximum delay. We will also be talking about restrictions.

5
Document validaton: introduction

In this video we will introduce document validation which is a new functionality. We will learn what validation means and how to define validation for our collections.

6
Document validation: validator

In this lecture we will be talking how to define validation rules for our documents using the validator option for the createCollection() method. We will also learn which operators we cannot use to create validation rules. 

7
Document validaton: validation level

In this video we will be talking about the validationLevel option, which is used to specify how strictly validation rules are applied to our documents. We will discuss all three levels:

  • off
  • strict
  • moderate

We will see the difference in practice.

8
Document validation: validation action

In this video we will be talking about the validationAction option, which is used to specify what happens when validation rules are violated. 

9
Quiz

Aggregation framework

1
Introduction

In this video we will discuss what data aggregation is. We will learn how to use the aggregate() method. We will learn how to define an aggregation pipeline and what it is. We will see the list of available aggregation stages.

2
$match

In this lecture we will be talking about the the $match stage, which is responsible for filtering documents 
in the pipeline.

3
$project

In this lecture we will be talking about the $project stage, which is similar to the projection parameter for the find() method. We will learn simple projections but we will also learn how to modify documents using this stage.

4
$redact

In this lecture we will be talking about the $redact stage, which is used to change the shape of documents. We will use it in practice.

5
$group

In this lecture we will be talking about the $group stage, which groups similar documents together, and then executes some operations on documents in every group separately. We will discuss what accumulators are. We will see in action these accumulators:

  • $sum
  • $avg
  • $min
  • $max
  • $first
  • $last
  • $push
  • $addToSet
6
$sample

In this lecture we will be talking about the $sample stage, which randomly selects a specified number of documents.

7
$sort, $limit and $skip

In this lecture we will be talking about three stages:

  • $sort
  • $limit
  • $skip

We will discuss the restrictions for the $sort stage and how to deal with them.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6
4.6 out of 5
417 Ratings

Detailed Rating

Stars 5
215
Stars 4
135
Stars 3
56
Stars 2
7
Stars 1
4
398980fa4b760fa5b7da369229d091dd
30-Day Money-Back Guarantee

Includes

16 hours on-demand video
7 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion