MongoDB 3.2: Professional Developer
4.6 (42 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
269 students enrolled
Wishlisted Wishlist

Please confirm that you want to add MongoDB 3.2: Professional Developer to your Wishlist.

Add to Wishlist

MongoDB 3.2: Professional Developer

Complete guide
4.6 (42 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
269 students enrolled
Created by Hubert Łyczek
Last updated 3/2017
English
Current price: $10 Original price: $50 Discount: 80% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 16 hours on-demand video
  • 7 Articles
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • feel like a duck in water (MongoDB world)
View Curriculum
Requirements
  • You only need the desire to learn. That's it!
Description

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%)



Who is the target audience?
  • anyone who wants to learn the leading "non-relational" database
  • IT developers
  • IT architects
Students Who Viewed This Course Also Viewed
Curriculum For This Course
132 Lectures
15:55:21
+
Introduction to MongoDB
4 Lectures 13:35

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

Preview 03:48

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

Preview 04:28

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.

Preview 03:45

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

  • mongod
  • mongo
Preview 01:34
+
MongoDB installation
5 Lectures 21:45

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

MongoDB editions and versions
02:34

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

Operating systems
01:53

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.

Installation: Ubuntu 14.04 LTS
11:38

Installation: Ubuntu 14.04 LTS - all steps
00:04

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

Installation: Windows
05:36
+
MongoDB server and clients
3 Lectures 22:24

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.

Run, connect to and shutdown the MongoDB server
09:12

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.

Client: the mongo shell
08:02

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.

Client: Robomongo
05:10
+
Data representation
5 Lectures 27:35

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.

Preview 01:09

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.

Mongo: the first interaction with the data
04:43

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.

Document in detail
09:13

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

Collection in detail
03:05

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

Mongo: databases, collections, documents
09:25
+
Resources
2 Lectures 04:42

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.

Resources
04:29

resources.zip file
00:13
+
CRUD
33 Lectures 03:54:19

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.

Introduction
02:27

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

Insert: method definition
02:08

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

Insert: inserting a single document
06:08

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

Preview 05:57

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

Insert: document restrictions
04:18

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

Find: methods definition
02:05

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

Find: cursor
12:37

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
Preview 10:08

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
Find: logical operators
08:22

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
Find: document structure conditions
09:47

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.

Find: embedded documents
06:22

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.

Find: $where
07:10

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
Find: arrays
12:40

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

Find: projection
06:31

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

  • $
  • $elemMatch
  • $meta
  • $slice
Find: projection operators
11:06

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.

Find: sorting
08:31

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.

Find: sorting unstructured data
06:41

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

  • cursor.limit()
  • cursor.skip(
Find: limit results
08:50

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

Update: method definition
02:00

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

Update: replacing the whole document
04:10

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

  • $set
  • $unset
Update: modification od selected fields
07:41

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

  • $inc
  • $mul
  • $min
  • $max
Update: arithmetic modifications
10:33

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

  • $addToSet
  • $push
Update: array - add new elements
10:51

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

  • $pop
  • $pullAll
  • $pull
Update: array - remove elements
15:19

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: $
Update: array - specific elements
11:09

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

Update: upsert
08:27

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

Update: multiple documents
04:26

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

Remove: method definition
01:43

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

Remove: deleting in action
09:00

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()
Inserting, modifying, deleting in 3.2
09:00

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!

Bulk operations (new in 3.2)
08:00


Homework: solutions
00:06

Quiz
20 questions
+
Indexes
11 Lectures 01:27:03

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

Preview 03:19

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()
Create, list and delete indexes
12:02

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.

Single field index (+explain +hint)
14:30

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.

Single field index: sorting
05:46

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.

Preview 10:02

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.

Compound index
06:57

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.

Compound index: sorting
06:16

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.

Unique and sparse indexes
13:16

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.

Multikey indexes
08:00

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

Covered query
05:55

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

Special indexes
01:00

Quiz
20 questions
+
Special MongoDB features
8 Lectures 01:13:20

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
Full text search
15:28

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.

Full text search: case sensitivity and diacritic characters
05:17

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

Full text search: compound index
06:32

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.

Full text search: score and sorting
11:42

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.

Full text search: restrictions and performance
09:32

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.

Preview 04:42

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.

Geospatial support: 2d
09:16

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. 

Geospatial support: 2dsphere
10:51

Quiz
13 questions
+
Collections
8 Lectures 58:51

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

Introduction
01:51

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.

Create collection manually and primary index
03:50

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.

Capped collections
15:06

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.

TTL collections
11:47

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.

Document validaton: introduction
03:25

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. 

Document validation: validator
13:22

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.

Document validaton: validation level
05:59

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

Document validation: validation action
03:31

Quiz
16 questions
+
Aggregation framework
16 Lectures 02:26:56

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.

Introduction
04:55

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

$match
06:13

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.

$project
11:09

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.

$redact
12:57

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
$group
10:47

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

$sample
02:03

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.

$sort, $limit and $skip
12:15

In this video we will be talking about about the $geoNear stage, which provides geospatial support for the aggregation framework. We will write a lot of queries using real coordinates for many capitals.

$geoNear
09:39

In this lecture we will be talking about the $unwind stage, which is used to transform a field that contains an array, to a single value field. 

$unwind
08:54

In this video we will be talking about exporting the result of the executed aggregation query to a collection, using the $out operator. We will discuss all the situations when exporting is not possible and how to handle such situations.

$out
12:41

In this video we will be talking about the $lookup stage, which is used to make joins!!! This makes our life much easier and it is a big step forward for MongoDB.

$lookup
10:11

In this video we will be talking about the $indexStats stage, which is used to retrieve statistics about indexes.

$indexStats
03:18

There are three methods, that are designed to perform common aggregation operations on a collection:

  • count()
  • group()
  • distinct()
We will discuss all of them in this video.
Single action aggregation operations
11:52

We used some expressions in the previous lectures but there are many more. In this video we will be using a lot of them.

Expressions
29:49


Homework: solutions
00:06

Quiz
15 questions
6 More Sections
About the Instructor
Hubert Łyczek
4.6 Average rating
42 Reviews
269 Students
1 Course
Full-stack developer and programming enhusiast

I've been working in IT industry for more than 11 years. But I don't really like to say that, since I know very well, that this number tells very little. I've seen people doing the same thing for 5-6 years learning nothing. I'm not like that. I like to learn, I like to know, I like to develop my skills. During this 11 years I've written almost 2000 pages of tutorials for myself. Now it's time to share my knowledge. That's why I'm here. I will be very happy if any of my courses help You. 

As an instructor my goal is to create the best courses, so don't hestiate to send your feedback. Thank You and have a nice day!