The Complete Developers Guide to MongoDB

The Complete Developers Guide to MongoDB

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 13.5 Hours | 1.85 GB

Master MongoDB and Mongoose design with a test-driven approach

MongoDB is the hottest database solution in the tech world right now, able to power anything from your growing personal project to an enterprise infrastructure.

NodeJS focused? Yep. Test Driven Exercises? Absolutely! Advanced Features of MongooseJS? You know it.

This course will get you up and running with MongoDB quickly, and teach you the core knowledge you need to deeply understand and build apps centered around Mongo.

We’ll start by mastering the fundamentals of Mongo, including collections, validations, and common record manipulation techniques. Source code is provided for each lecture, so you will always stay up-to-date with the course pacing. Special attention has been paid to creating reusable code that you’ll be able to make use of on your own fantastic projects.

If you are new to MongoDB, or if you’ve been working to learn it but sometimes feel like you still don’t quite ‘get it’, this is the MongoDB course for you! To learn MongoDB you have to understand it.

  • Learn how to use the popular MongooseJS library to interface with Mongo
  • Write tests around Mongo queries to ensure your code is working. You can reuse these tests on your own personal projects!
  • Master the process of designing NoSQL schema
  • Grasp the differences record associations and resource embedding
  • Use the advanced features of Mongoose to save development time
  • Develop apps that are fast and responsive thanks to Mongo’s speed and flexibility
  • Work on either Windows or OSX
  • Master the integration of Mongo, Node, and Mocha in a modern development environment

I’ve built the course that I would have wanted to take when I was learning MongoDB. A course that explains the concepts and how they’re implemented in the best order for you to learn and deeply understand them.
What you’ll learn

  • Understand how MongoDB stores data
  • Gain mastery of the most popular MongoDB interface, Mongoose JS
  • Write efficient queries for reading data
  • Learn the purpose of each of Mongoose’s functions
  • Design effective NoSQL schema with both data nesting and lookups
Table of Contents

Let’s Start
1 How to Use This Course
2 Github Repo Link

OSX Setup
3 MongoDB Setup on OSX
4 More OSX Setup – Robomongo

Windows Setup
5 Windows Setup
6 RoboMongo Setup

A Quick ES6 Refresher
7 A Refresher on Promises
8 Let’s Play A Game
9 Winning the Game
10 Behind the Scenes with Promises

Core Fundamentals of MongoDB
11 Where Do We Use Mongo
12 Fundamentals of MongoDB
13 A Last Touch of Setup

A Test Driven Experience
14 Project Overview
15 The Test Helper File
16 Mongoose Connection Helper
17 Mongoose Models
18 More on Models
19 The Basics of Mocha
20 Running Mocha Tests
21 Creating Model Instances
22 Saving Users to Mongo
23 Dropping Collections
24 Mocha’s Done Callback
25 Mongoose’s isNew Property
26 Default Promise Implementation
27 Test Setup for Finding Users
28 Making Mongo Queries
29 The ID Property – A Big Gotcha
30 Automating Tests with Nodemon
31 Finding Particular Records
32 The Many Ways to Remove Records
33 Class Based Removes
34 More Class Based Removals
35 The Many Ways to Update Records
36 Set and Save for Updating Records
37 Model Instance Updates
38 Class Based Updates

Mongo Operators
39 Update Operators
40 The Increment Update Operator
41 Validation of Records
42 Requiring Attributes on a Model
43 Validation With a Validator Function
44 Handling Failed Inserts

Handling Relational Data
45 Embedding Resources in Models
46 Nesting Posts on Users
47 Testing Subdocuments
48 Adding Subdocuments to Existing Records
49 Removing Subdocuments
50 Virtual Types
51 Defining a Virtual Type
52 ES6 Getters
53 Fixing Update Tests

Thinking About Schema Design
54 Challenges of Nested Resources
55 Embedded Documents vs Separate Collections
56 BlogPosts vs Posts
57 Creating Associations with Refs
58 Test Setup for Associations
59 Wiring Up Has Many and Has One Relations
60 Promise.All for Parallel Operations
61 Populating Queries
62 Loading Deeply Nested Associations

Mongoose Middleware
63 Cleaning Up with Middleware
64 Dealing with Cyclic Requires
65 Pre-Remove Middleware
66 Testing Pre-Remove Middleware

Handling Big Collections with Pagination
67 Skip and Limit
68 Writing Skip and Limit Queries
69 Sorting Collections

Putting Your Skills to the Test
70 Project Setup
71 Project Overview
72 First Step – Artist and Album Models
73 The Album Schema
74 The Artist Model
75 Finding Particular Records
76 FindOne vs FindById
77 The CreateArtist Operation
78 Solution to Creating Artists
79 Deleting Singular Records
80 Solution to Removing
81 Editing Records
82 How to Edit Single Artists

Hard Mode Engage
83 Minimum and Maximum Values in a Collection
84 Solution to Min and Max Queries
85 Challenge Mode – Search Query
86 Sorting, Limiting, and Skipping Together
87 Danger! Big Challenge Ahead
88 Filtering By Single Properties
89 Filtering with Multiple Props
90 Handling Text Search
91 Indexes and Text Search
92 Batch Updates
93 The Hidden ‘Multi’ Setting
94 Seeding Many Records
95 Counting the Result Set

MongoDB with Node and Express
96 App Overview
97 Designing API Routes
98 Project Setup
99 HTTP Request Methods
100 The Basics of Express
101 Express Boilerplate
102 Handling Requests with Express
103 Testing Express Apps with Mocha
104 Running Mocha
105 Project Structure
106 Refactoring for Controllers and Models
107 The Driver Model
108 The Create Drivers Route
109 The BodyParser Middleware
110 Testing Driver Creation
111 More on Testing Driver Creation
112 Additional Mongoose Setup
113 Driver Implementation
114 Testing Endpoints with Postman
115 Dev vs Test Environments
116 Separate Test Databases
117 Middlewares in Express
118 Handling Editing of Drivers
119 Testing Driver Updates
120 Handling Deletion of Drivers
121 Testing Driver Deletion
122 Geography with MongoDB
123 The GeoJSON Schema
124 GeoNear Queries
125 Testing a GeoNear Query
126 One Big Gotcha
127 Another Big Gotcha
128 Testing GeoQueries

Extras
129 Bonus!