﻿1
00:00:01,320 --> 00:00:03,164
‫So, we connected our application

2
00:00:03,164 --> 00:00:07,200
‫with the database using Mongoose in the last lecture.

3
00:00:07,200 --> 00:00:10,559
‫But wait, what actually is Mongoose?

4
00:00:10,559 --> 00:00:15,050
‫Well, Mongoose is an object data modeling library

5
00:00:15,050 --> 00:00:17,320
‫for MongoDB and Node JS,

6
00:00:17,320 --> 00:00:20,950
‫providing a higher level of abstraction.

7
00:00:20,950 --> 00:00:22,770
‫So, it's a bit like the relationship

8
00:00:22,770 --> 00:00:24,840
‫between Express and Node,

9
00:00:24,840 --> 00:00:28,990
‫so Express is a layer of abstraction over regular Node,

10
00:00:28,990 --> 00:00:31,700
‫while Mongoose is a layer of abstraction

11
00:00:31,700 --> 00:00:34,490
‫over the regular MongoDB driver.

12
00:00:34,490 --> 00:00:37,700
‫And by the way, an object data modeling library

13
00:00:37,700 --> 00:00:40,450
‫is just a way for us to write JavaScript code

14
00:00:40,450 --> 00:00:43,750
‫that will then interact with a database.

15
00:00:43,750 --> 00:00:47,010
‫So, we could just use a regular MongoDB driver

16
00:00:47,010 --> 00:00:50,710
‫to access our database, and it would work just fine,

17
00:00:50,710 --> 00:00:52,740
‫but instead we use Mongoose,

18
00:00:52,740 --> 00:00:56,670
‫because it gives us a lot more functionality out of the box,

19
00:00:56,670 --> 00:00:59,490
‫allowing for faster and simpler development

20
00:00:59,490 --> 00:01:01,180
‫of our applications.

21
00:01:01,180 --> 00:01:03,510
‫So, some of the features Mongoose give us

22
00:01:03,510 --> 00:01:07,450
‫is schemas to model our data and relationship,

23
00:01:07,450 --> 00:01:11,100
‫easy data validation, a simple query API,

24
00:01:11,100 --> 00:01:13,725
‫middleware, and much more.

25
00:01:13,725 --> 00:01:17,580
‫In Mongoose, a schema is where we model our data,

26
00:01:17,580 --> 00:01:20,640
‫so where we describe the structure of the data,

27
00:01:20,640 --> 00:01:23,440
‫default values, and validation.

28
00:01:23,440 --> 00:01:27,740
‫We then take that schema and create a model out of it.

29
00:01:27,740 --> 00:01:30,010
‫And the model is basically a wrapper

30
00:01:30,010 --> 00:01:33,320
‫around the schema, which allows us to actually interface

31
00:01:33,320 --> 00:01:37,470
‫with the database in order to create, delete, update,

32
00:01:37,470 --> 00:01:38,713
‫and read documents.

33
00:01:39,600 --> 00:01:43,340
‫All right, so this was just a very quick introduction.

34
00:01:43,340 --> 00:01:44,730
‫Now, let's actually go ahead

35
00:01:44,730 --> 00:01:47,503
‫and create a simple schema and model.

