MongoDB 3.2: Professional Developer
- Description
- Curriculum
- FAQ
- Reviews
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%)
-
1What 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.
-
2Main MongoDB features
In this lecture we will be talking about the two main advantages of MongoDB.
-
3MongoDB 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.
-
4MongoDB components
In this lecture we will be talking about the components of MongoDB. We will focus on two most important of them:
- mongod
- mongo
-
5MongoDB editions and versions
In this lecture we will be talking about different MongoDB editions and versions. We will choose the MongoDB edition for us.
-
6Operating 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.
-
7Installation: 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.
-
8Installation: Ubuntu 14.04 LTS - all steps
-
9Installation: Windows
In this video we will be installing MongoDB on Windows. After this video you will be ready for action!
-
10Run, 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.
-
11Client: 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.
-
12Client: 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.
-
13Quick 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.
-
14Mongo: 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.
-
15Document 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.
-
16Collection in detail
In this lecture we will discuss MongoDB collections in detail. We will focus mostly on polimorphism and how to create collections.
-
17Mongo: 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.
-
20Introduction
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.
-
21Insert: method definition
In this video we will discuss the insert() method, which is used to insert new documents into a collection.
-
22Insert: inserting a single document
In this video we will be talking about inserting single documents into the database. We will also discuss primary keys.
-
23Insert: inserting many documents
In this lecture we will be talking about how to insert many documents at the same time.
-
24Insert: document restrictions
In this lecture we will be talking about some very important restrictions that affect documents in MongoDB.
-
25Find: methods definition
In this video we will discuss the find() and findOne() methods, which are used to retrieve documents from the database.
-
26Find: cursor
The find() method returns always a cursor. In this video we will learn what a cursor is and how it works.
-
27Find: 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
-
28Find: 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
-
29Find: 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
-
30Find: 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.
-
31Find: $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.
-
32Find: 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
-
33Find: projection
In this lecture, we will be talking about projection, so the ability to limit returned data.
-
34Find: projection operators
In this video we will continue learning projection, but in this lecture we will focus on projection operators:
- $
- $elemMatch
- $meta
- $slice
-
35Find: 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.
-
36Find: 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.
-
37Find: 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(
-
38Update: method definition
In this video we will discuss the update() method, which is used to change existing documents.
-
39Update: replacing the whole document
In this short lecture we will be learning how to replace the whole document in a collection.
-
40Update: 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
-
41Update: arithmetic modifications
In this lecture we will be talking modifying numbers. We will discuss these operators:
- $inc
- $mul
- $min
- $max
-
42Update: 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
-
43Update: 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
-
44Update: 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: $
-
45Update: upsert
In this video we will be talking about upserting documents. We will learn what upserting is, and what fields upserted documents contain.
-
46Update: multiple documents
In this video we will be learning how to modify multiple documents, as by default MongoDB modifies only single documents.
-
47Remove: method definition
In this video we will discuss the remove() method, which is used to change delete documents.
-
48Remove: 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.
-
49Inserting, 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()
-
50Bulk 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!
-
51Homework: tasks
-
52Homework: solutions
-
53Quiz
-
54Introduction
In this video we will learn what indexes are and what they are used for. We will learn how they speed up our queries.
-
55Create, 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()
-
56Single 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.
-
57Single 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.
-
58Index 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.
-
59Compound 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.
-
60Compound 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.
-
61Unique 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.
-
62Multikey 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.
-
63Covered query
Covered queries are very fast! We will be learning when we can and how to write a covered query.
-
64Special indexes
In this lecture we will briefly discuss special types of indexes. They will be explained in detail in the next section.
-
65Quiz
-
66Full 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
-
67Full 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.
-
68Full text search: compound index
In this lecture we will be learning how to create and use compound text indexes.
-
69Full 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.
-
70Full 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.
-
71Geospatial 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.
-
72Geospatial 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.
-
73Geospatial 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.
-
74Quiz
-
75Introduction
In this video we will be talking what are the three main types of collections. We will also mention validation.
-
76Create 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.
-
77Capped 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.
-
78TTL 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.
-
79Document 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.
-
80Document 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.
-
81Document 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.
-
82Document 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.
-
83Quiz
Social Network