-
Notifications
You must be signed in to change notification settings - Fork 1.2k
MongoDB Introduction Course
Introduction Course Overview
Below you can find the ordered content of the topic, in a linear progression
The linear progression of content aims to cover all content, course by course, workout by workout as follows:
- first course is the only core one, denoted by its manifest
- the next course is denoted by the first item of the next array in each course manifest
- each course has its order of workouts designated by the sections field in the same aforementioned manifest
1. intro
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-nosql | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | key-value-databases | ✅ | 🔮 obscura 👶 introduction |
❌ | ❌ | ❌ | ❌ | ❌ |
3 | column-databases | ✅ | 🔮 obscura 👶 introduction |
❌ | ❌ | ❌ | ❌ | ❌ |
4 | graph-databases | ✅ | 🔮 obscura 👶 introduction |
❌ | ❌ | ❌ | ❌ | ❌ |
5 | document-databases | ✅ | 🔮 obscura 👶 introduction |
❌ | ✅ | ❌ | ❌ | ❌ |
6 | why-mongodb | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
2. databases
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | mongodb-shell | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
2 | create-a-database-mongodb | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | drop-a-database | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | create-collection | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | create-document | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
3 | read-documents | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | update-single-document | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | update-multiple-documents | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | delete-collection | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | delete-documents | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | objectid-intro | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
2 | query-collection | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
3 | query-collection-2 | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | query-collection-3 | ✅ | 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | query-collection-4 | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
6 | query-collection-5 | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregation-intro | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | aggregation-count | ✅ | ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | aggregation-limit | ✅ | ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | aggregation-skip | ✅ | ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | aggregation-4-stages | ✅ | ✨ new 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
6 | aggregation-sort | ✅ | 👶 introduction ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregation-project | ✅ | 👶 introduction ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | aggregation-project-ii | ✅ | 👶 introduction ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | aggregation-group | ✅ | ✨ new | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | aggregation-group-ii | ✅ | ✨ new 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | aggregation-sortbycount | ✅ | ✨ new 🦑 deep 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
6 | aggregation-sortbycount-ii | ✅ | ✨ new 🦑 deep 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
8. crud
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | querying-a-collection-5 | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ❌ | ❌ | ❌ |
2 | querying-a-collection-6 | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | delete-documents-2 | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | delete-documents-3 | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ❌ | ❌ | ❌ |
5 | save-method | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
6 | projection | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
7 | renaming-a-collection | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregating-with-add | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
2 | aggregating-with-subtract | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
3 | aggregating-with-add-and-subtract | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
4 | aggregating-with-multiply | ✅ | ✨ new | ❌ | ✅ | ❌ | ❌ | ❌ |
5 | aggregating-with-divide | ✅ | ✨ new | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregating-with-trunc | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | aggregating-with-round | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
3 | aggregating-with-round-and-trunc | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
4 | aggregation-with-object-expression-operators-i | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
5 | aggregation-with-object-expression-operators-ii | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
11. aggregation-iii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregation-with-accumulators | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
2 | aggregation-with-last | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | aggregation-with-max-min | ✅ | ✨ new | ❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
12. aggregation-iv
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | aggregation-with-push | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
2 | aggregation-with-sum | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | aggregation-with-floor-and-ceil | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
4 | aggregation-with-mod | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
13. querying-arrays
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | querying-an-array-i | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
2 | querying-an-array-ii | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
3 | querying-an-array-with-the-size-operator-iii | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
4 | querying-an-array-with-the-all-operator-iv | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
✅ - At least one insight covers this
❌ - Nothing covers this
🛠️ - This standard has no objectives yet
- ❌ Use the mongo command to start the shell
- ❌ Use either the quit() or exit command to leave the shell
- ❌ Use the help command to list command line options
- ❌ Use the use command to create a new database
- ❌ Use the use command to switch to an existing database
- ❌ Use the show command to list all created databases with at least one document
- ❌ Use the db command to display which database you're currently on
- ❌ Use the dropDatabase() method to delete an existing database
- ❌ Use the insert() method to create a new document or documents within an existing or new collection
- ❌ Use the insertOne() method to add a single new document within an existing or new collection
- ❌ Use the insertMany() method to add multiple new documents within an existing or new collection
- ❌ Use the find() method to find a specific document located within a collection
- ❌ Use the find() and limit method to list an exact number of documents within a collection
- ❌ Use the update() method to modify or replace a single or multiple documents within a collection
- ❌ Use the updateOne() method to modify a single document within a collection
- ❌ Use the updateMany() method to modify multiple documents within a collection
- ❌ Use the replaceOne() method to replace a single document within a collection
- ❌ Use the deleteOne() method to delete a single document within a collection
- ❌ Use the deleteMany() method to delete a single, multiple or all documents within a collection
- ❌ Use the remove() method to remove a single, multiple or all documents within a collection
- ❌ Use the createCollection() method to create a new collection within the current database
- ❌ Use the show collection command to display all available collections within the current database
- ❌ Use the drop() method to delete a collection within the current database
- ❌ Use the find() and sort method to sort documents within a collection in a specified way
- ❌ Use the save() method to either replace an existing document or add a new document to a collection
- ❌ Use the renameCollection() method to rename a collection
- ❌ Use the findOneAndUpdate() method to find the first document matching the specified criteria and update its content
- ❌ Use the findOneAndReplace() method to find the first document matching the specified criteria and replace it with a newly specified one
- ❌ Use the findOneAndModify()method to find the first document matching the specified criteria and modify it
- ❌ Use projection to include or exclude fields from the output of the query
- ❌ Use the Remove() method to delete the first document matching the specified criteria
- ❌ Use the findOneAndDelete() method to delete the first document matching the specified criteria
❌ Use a variety of aggregation operations to process data and return the result in a single document
- ❌ Use the aggregate() method to look through multiple documents and return a computed result
- ❌ Use the $limit aggregation stage to limit the amount of documents to return
- ❌ Use the $count aggregation stage to count the number of documents within a collection
- ❌ Use the $sort aggregation stage to sort documents in a specific order
- ❌ Use the $skip aggregation stage to skip a specific number of documents starting from the first one
- ❌ Use the $match aggregation stage to match documents in a specified way
- ❌ Use the $group aggregation stage to group documents together
- ❌ Use the $project aggregation stage to include or exclude documents from the aggregation pipeline
- ❌ Use accumulators related to the $group stage to group documents and perform different calculations
- ❌ Use the $sortByCount aggregation stage to group and sort documents by a specified expression
- ❌ Use the $set operator to set a new value for a specified field
- ❌ Use the $inc operator to either increment or decrement the value of a specified field
- ❌ Use $gt to match values that are greater than the specified value.
- ❌ Use $gte to match values that are greater than or equal to the specified value.
- ❌ Use $lt to match values that are less than the specified value.
- ❌ Use $lte to match values that are less than or equal to the specified value.
- ❌ Use $in to match any value specified in an array.
- ❌ Use $ne to match values that are not equal to a specified value.
- ❌ Use $eq to match values that are equal to a specified value.
- ❌ Use $nin to match none of the values specified in an array.
- ❌ Use the $and operator to join 2 or more clauses together with a logical AND, and return all documents that match all of the specified expressions
- ❌ Use the $or operator to join 2 or more clauses together with a logical OR, and return all documents that match at least one of the specified expressions
- ❌ Use the $nor operator to join 2 or more clauses together with a logical NOR, and return only documents that don't match all of the specified expressions
- ❌ Use the $not operator to invert the effect of the query.
Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.
These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.
For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration
If you are being introduced to the topic for the first time
Insights:
- what-is-nosql
- key-value-databases
- column-databases
- graph-databases
- document-databases
- why-mongodb
- mongodb-shell
- create-a-database-mongodb
- drop-a-database
- create-collection
- create-document
- read-documents
- update-single-document
- update-multiple-documents
- delete-collection
- delete-documents
- objectid-intro
- query-collection-5
- aggregation-intro
- aggregation-sort
- aggregation-project
- aggregation-project-ii
- save-method
- renaming-a-collection
- aggregating-with-add
- aggregating-with-subtract
- aggregating-with-add-and-subtract
- aggregating-with-trunc
- aggregating-with-round
- aggregating-with-round-and-trunc
- aggregation-with-object-expression-operators-i
- aggregation-with-object-expression-operators-ii
- aggregation-with-accumulators
- aggregation-with-last
- aggregation-with-push
- aggregation-with-sum
- aggregation-with-floor-and-ceil
- aggregation-with-mod
- querying-an-array-i
- querying-an-array-ii
- querying-an-array-with-the-size-operator-iii
- querying-an-array-with-the-all-operator-iv
Theory put into practice/that’s how you achieve X points
Insights:
- why-mongodb
- create-a-database-mongodb
- drop-a-database
- create-collection
- create-document
- read-documents
- delete-collection
- delete-documents
- query-collection
- query-collection-2
- query-collection-3
- query-collection-4
- query-collection-5
- aggregation-count
- aggregation-limit
- aggregation-skip
- aggregation-4-stages
- aggregation-sort
- aggregation-project
- aggregation-project-ii
- aggregation-group-ii
- aggregation-sortbycount
- aggregation-sortbycount-ii
- querying-a-collection-5
- querying-a-collection-6
- delete-documents-2
- delete-documents-3
- projection
Prerequisite knowledge consisting of 2 or more 👶/💪 workouts
Insights:
- query-collection
- query-collection-2
- query-collection-3
- aggregation-sortbycount
- aggregation-sortbycount-ii
- querying-a-collection-5
- querying-a-collection-6
- delete-documents-2
- delete-documents-3
- projection
Recently added/gained traction feature
Insights:
- aggregation-intro
- aggregation-count
- aggregation-limit
- aggregation-skip
- aggregation-4-stages
- aggregation-sort
- aggregation-project
- aggregation-project-ii
- aggregation-group
- aggregation-group-ii
- aggregation-sortbycount
- aggregation-sortbycount-ii
- aggregating-with-add
- aggregating-with-subtract
- aggregating-with-add-and-subtract
- aggregating-with-multiply
- aggregating-with-divide
- aggregating-with-trunc
- aggregating-with-round
- aggregating-with-round-and-trunc
- aggregation-with-object-expression-operators-i
- aggregation-with-object-expression-operators-ii
- aggregation-with-accumulators
- aggregation-with-last
- aggregation-with-max-min
- aggregation-with-push
- aggregation-with-sum
- aggregation-with-floor-and-ceil
- aggregation-with-mod
Stories, obscure details that don’t specifically relate to a learning objective
Insights:
✅ All content has been tagged with aspects.
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: