Skip to content

MongoDB Introduction Course

enki-hq edited this page May 18, 2020 · 7 revisions

Introduction Course Overview

Table of Contents

Content

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 save-method 👶 introduction
2 projection 💪 workout
🦑 deep
3 renaming-a-collection 👶 introduction

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

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:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Standards

✅ - At least one insight covers this

❌ - Nothing covers this

🛠️ - This standard has no objectives yet

❌ Use the MongoDB interactive JavaScript Shell

  1. ❌ Use the mongo command to start the shell
  2. ❌ Use either the quit() or exit command to leave the shell
  3. ❌ Use the help command to list command line options

❌ Create and modify a database

  1. ❌ Use the use command to create a new database
  2. ❌ Use the use command to switch to an existing database
  3. ❌ Use the show command to list all created databases with at least one document
  4. ❌ Use the db command to display which database you're currently on
  5. ❌ Use the dropDatabase() method to delete an existing database

❌ Use commands and methods to create, read, update and delete documents within a single collection

  1. ❌ Use the insert() method to create a new document or documents within an existing or new collection
  2. ❌ Use the insertOne() method to add a single new document within an existing or new collection
  3. ❌ Use the insertMany() method to add multiple new documents within an existing or new collection
  4. ❌ Use the find() method to find a specific document located within a collection
  5. ❌ Use the find() and limit method to list an exact number of documents within a collection
  6. ❌ Use the update() method to modify or replace a single or multiple documents within a collection
  7. ❌ Use the updateOne() method to modify a single document within a collection
  8. ❌ Use the updateMany() method to modify multiple documents within a collection
  9. ❌ Use the replaceOne() method to replace a single document within a collection
  10. ❌ Use the deleteOne() method to delete a single document within a collection
  11. ❌ Use the deleteMany() method to delete a single, multiple or all documents within a collection
  12. ❌ Use the remove() method to remove a single, multiple or all documents within a collection
  13. ❌ Use the createCollection() method to create a new collection within the current database
  14. ❌ Use the show collection command to display all available collections within the current database
  15. ❌ Use the drop() method to delete a collection within the current database
  16. ❌ Use the find() and sort method to sort documents within a collection in a specified way
  17. ❌ Use the save() method to either replace an existing document or add a new document to a collection
  18. ❌ Use the renameCollection() method to rename a collection
  19. ❌ Use the findOneAndUpdate() method to find the first document matching the specified criteria and update its content
  20. ❌ Use the findOneAndReplace() method to find the first document matching the specified criteria and replace it with a newly specified one
  21. ❌ Use the findOneAndModify()method to find the first document matching the specified criteria and modify it
  22. ❌ Use projection to include or exclude fields from the output of the query
  23. ❌ Use the Remove() method to delete the first document matching the specified criteria
  24. ❌ 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

  1. ❌ Use the aggregate() method to look through multiple documents and return a computed result
  2. ❌ Use the $limit aggregation stage to limit the amount of documents to return
  3. ❌ Use the $count aggregation stage to count the number of documents within a collection
  4. ❌ Use the $sort aggregation stage to sort documents in a specific order
  5. ❌ Use the $skip aggregation stage to skip a specific number of documents starting from the first one
  6. ❌ Use the $match aggregation stage to match documents in a specified way
  7. ❌ Use the $group aggregation stage to group documents together
  8. ❌ Use the $project aggregation stage to include or exclude documents from the aggregation pipeline
  9. ❌ Use accumulators related to the $group stage to group documents and perform different calculations
  10. ❌ Use the $sortByCount aggregation stage to group and sort documents by a specified expression

❌ Use field update operators to update documents in various ways

  1. ❌ Use the $set operator to set a new value for a specified field
  2. ❌ Use the $inc operator to either increment or decrement the value of a specified field

❌ Use different comparison operators to perform better queries

  1. ❌ Use $gt to match values that are greater than the specified value.
  2. ❌ Use $gte to match values that are greater than or equal to the specified value.
  3. ❌ Use $lt to match values that are less than the specified value.
  4. ❌ Use $lte to match values that are less than or equal to the specified value.
  5. ❌ Use $in to match any value specified in an array.
  6. ❌ Use $ne to match values that are not equal to a specified value.
  7. ❌ Use $eq to match values that are equal to a specified value.
  8. ❌ Use $nin to match none of the values specified in an array.

❌ Use different logical operators to perform better queries

  1. ❌ 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
  2. ❌ 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
  3. ❌ 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
  4. ❌ Use the $not operator to invert the effect of the query.

Aspects

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

👶 Introduction

If you are being introduced to the topic for the first time

Insights:

  1. what-is-nosql
  2. key-value-databases
  3. column-databases
  4. graph-databases
  5. document-databases
  6. why-mongodb
  7. mongodb-shell
  8. create-a-database-mongodb
  9. drop-a-database
  10. create-collection
  11. create-document
  12. read-documents
  13. update-single-document
  14. update-multiple-documents
  15. delete-collection
  16. delete-documents
  17. objectid-intro
  18. query-collection-5
  19. aggregation-intro
  20. aggregation-sort
  21. aggregation-project
  22. aggregation-project-ii
  23. save-method
  24. renaming-a-collection
  25. aggregating-with-add
  26. aggregating-with-subtract
  27. aggregating-with-add-and-subtract
  28. aggregating-with-trunc
  29. aggregating-with-round
  30. aggregating-with-round-and-trunc
  31. aggregation-with-object-expression-operators-i
  32. aggregation-with-object-expression-operators-ii
  33. aggregation-with-accumulators
  34. aggregation-with-last
  35. aggregation-with-push
  36. aggregation-with-sum
  37. aggregation-with-floor-and-ceil
  38. aggregation-with-mod
  39. querying-an-array-i
  40. querying-an-array-ii
  41. querying-an-array-with-the-size-operator-iii
  42. querying-an-array-with-the-all-operator-iv

⚠️ There are no exercises tagged with this aspect in intro. :warning: There are no games tagged with this aspect in intro.

💪 Workout

Theory put into practice/that’s how you achieve X points

Insights:

  1. why-mongodb
  2. create-a-database-mongodb
  3. drop-a-database
  4. create-collection
  5. create-document
  6. read-documents
  7. delete-collection
  8. delete-documents
  9. query-collection
  10. query-collection-2
  11. query-collection-3
  12. query-collection-4
  13. query-collection-5
  14. aggregation-count
  15. aggregation-limit
  16. aggregation-skip
  17. aggregation-4-stages
  18. aggregation-sort
  19. aggregation-project
  20. aggregation-project-ii
  21. aggregation-group-ii
  22. aggregation-sortbycount
  23. aggregation-sortbycount-ii
  24. querying-a-collection-5
  25. querying-a-collection-6
  26. delete-documents-2
  27. delete-documents-3
  28. projection

⚠️ There are no exercises tagged with this aspect in intro. :warning: There are no games tagged with this aspect in intro.

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. query-collection
  2. query-collection-2
  3. query-collection-3
  4. aggregation-sortbycount
  5. aggregation-sortbycount-ii
  6. querying-a-collection-5
  7. querying-a-collection-6
  8. delete-documents-2
  9. delete-documents-3
  10. projection

⚠️ There are no exercises tagged with this aspect in intro. :warning: There are no games tagged with this aspect in intro.

✨ New

Recently added/gained traction feature

Insights:

  1. aggregation-intro
  2. aggregation-count
  3. aggregation-limit
  4. aggregation-skip
  5. aggregation-4-stages
  6. aggregation-sort
  7. aggregation-project
  8. aggregation-project-ii
  9. aggregation-group
  10. aggregation-group-ii
  11. aggregation-sortbycount
  12. aggregation-sortbycount-ii
  13. aggregating-with-add
  14. aggregating-with-subtract
  15. aggregating-with-add-and-subtract
  16. aggregating-with-multiply
  17. aggregating-with-divide
  18. aggregating-with-trunc
  19. aggregating-with-round
  20. aggregating-with-round-and-trunc
  21. aggregation-with-object-expression-operators-i
  22. aggregation-with-object-expression-operators-ii
  23. aggregation-with-accumulators
  24. aggregation-with-last
  25. aggregation-with-max-min
  26. aggregation-with-push
  27. aggregation-with-sum
  28. aggregation-with-floor-and-ceil
  29. aggregation-with-mod

⚠️ There are no exercises tagged with this aspect in intro. :warning: There are no games tagged with this aspect in intro.

🔮 Obscura

Stories, obscure details that don’t specifically relate to a learning objective

Insights:

  1. key-value-databases
  2. column-databases
  3. graph-databases
  4. document-databases

⚠️ There are no exercises tagged with this aspect in intro. :warning: There are no games tagged with this aspect in intro.

✅ All content has been tagged with aspects.

Clone this wiki locally