All language subtitles for 002 What is MongoDB__Downloadly.ir_en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian Download
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:01,090 --> 00:00:03,210 Just like in the previous sections, 2 00:00:03,210 --> 00:00:05,810 before we dive into a new technology, 3 00:00:05,810 --> 00:00:08,590 let's actually learn what it's all about. 4 00:00:08,590 --> 00:00:12,180 So in this case, let's learn what MongoDB actually is, 5 00:00:12,180 --> 00:00:14,750 how it works, and a quick overview 6 00:00:14,750 --> 00:00:18,600 of how it compares to more traditional databases. 7 00:00:18,600 --> 00:00:21,340 And let's begin with a simple overview. 8 00:00:21,340 --> 00:00:24,830 So MongoDB is obviously a database, 9 00:00:24,830 --> 00:00:27,870 and it's a so-called NoSQL database. 10 00:00:27,870 --> 00:00:30,930 Now some people also say No S Q L, 11 00:00:30,930 --> 00:00:34,240 but I'm just gonna keep saying "no sequel", all right? 12 00:00:34,240 --> 00:00:37,010 Now, the other type of database, which is 13 00:00:37,010 --> 00:00:40,620 sort of more traditional, is the relational database, 14 00:00:40,620 --> 00:00:43,760 which NoSQL is often compared to. 15 00:00:43,760 --> 00:00:48,330 Anyway, in Mongo, which we can also say instead of MongoDB, 16 00:00:48,330 --> 00:00:52,570 each database can contain one or more collections. 17 00:00:52,570 --> 00:00:55,100 So if you actually are coming from one of 18 00:00:55,100 --> 00:00:58,530 these more traditional relational database systems, 19 00:00:58,530 --> 00:01:02,760 you can think of a collection as a table of data. 20 00:01:02,760 --> 00:01:05,519 Then, each collection can contain one 21 00:01:05,519 --> 00:01:09,130 or more data structures called documents, 22 00:01:09,130 --> 00:01:11,870 and again, in a relational database, 23 00:01:11,870 --> 00:01:15,380 a document would be a row in a table. 24 00:01:15,380 --> 00:01:17,770 So each document contains the data 25 00:01:17,770 --> 00:01:20,600 about one single entity, for example, 26 00:01:20,600 --> 00:01:24,870 one blog post or one user or one review, 27 00:01:24,870 --> 00:01:26,780 or anything else, really. 28 00:01:26,780 --> 00:01:29,030 You get the point, right? 29 00:01:29,030 --> 00:01:32,270 Now the collection is like the parent structure 30 00:01:32,270 --> 00:01:34,730 that contains all these entities. 31 00:01:34,730 --> 00:01:38,120 For example, a blog collection for all posts, 32 00:01:38,120 --> 00:01:41,730 a users collection or a reviews collection. 33 00:01:41,730 --> 00:01:44,060 And you can also see here that the document 34 00:01:44,060 --> 00:01:47,740 has a data format that looks a lot like JSON, 35 00:01:47,740 --> 00:01:49,810 which will make our work a lot easier 36 00:01:49,810 --> 00:01:52,520 when we start dealing with these documents. 37 00:01:52,520 --> 00:01:55,180 And of course we will talk a lot about this later, 38 00:01:55,180 --> 00:01:58,543 but for now on, let's learn about Mongo's main features. 39 00:01:59,460 --> 00:02:02,260 So, according to MongoDB's website, 40 00:02:02,260 --> 00:02:05,990 MongoDB is a document database with the scalability 41 00:02:05,990 --> 00:02:08,330 and flexibility that you want, 42 00:02:08,330 --> 00:02:12,200 and with the querying and indexing that you need. 43 00:02:12,200 --> 00:02:14,710 Now, that sounds a bit over the top, 44 00:02:14,710 --> 00:02:17,503 so let's try to understand what this actually means. 45 00:02:18,490 --> 00:02:23,250 So, as we saw before, MongoDB is a document-based database, 46 00:02:23,250 --> 00:02:25,750 so it stores data in documents which 47 00:02:25,750 --> 00:02:29,660 are field-value paired data structures like JSON. 48 00:02:29,660 --> 00:02:33,020 So again, it stores data in these document 49 00:02:33,020 --> 00:02:34,840 instead of rows in a table 50 00:02:34,840 --> 00:02:37,530 like in traditional relational databases. 51 00:02:37,530 --> 00:02:39,930 It's therefore a NoSQL database 52 00:02:39,930 --> 00:02:42,190 and not a relational one. 53 00:02:42,190 --> 00:02:45,690 Also, MongoDB has built-in scalability, 54 00:02:45,690 --> 00:02:48,360 making it very easy to distribute data 55 00:02:48,360 --> 00:02:50,920 across multiple machines as your apps 56 00:02:50,920 --> 00:02:52,620 get more and more users 57 00:02:52,620 --> 00:02:56,090 and starts generating a ton of data. 58 00:02:56,090 --> 00:02:59,710 So whatever you do, MongoDB will make it very easy 59 00:02:59,710 --> 00:03:01,110 for you to grow. 60 00:03:01,110 --> 00:03:04,010 Next up, another big feature of MongoDB 61 00:03:04,010 --> 00:03:06,360 is its great flexibility. 62 00:03:06,360 --> 00:03:10,210 So there is no need to define a document data schema 63 00:03:10,210 --> 00:03:12,210 before filling it with data, 64 00:03:12,210 --> 00:03:15,460 meaning that each document can have a different number 65 00:03:15,460 --> 00:03:17,160 and type of fields. 66 00:03:17,160 --> 00:03:20,120 And we can also change these fields all the time. 67 00:03:20,120 --> 00:03:22,130 And all this is really in line 68 00:03:22,130 --> 00:03:24,460 with some real-world business situations, 69 00:03:24,460 --> 00:03:26,690 and therefore can become pretty useful. 70 00:03:26,690 --> 00:03:31,550 MongoDB is also a very performant database system. 71 00:03:31,550 --> 00:03:34,680 Thanks to features like embedded data models, 72 00:03:34,680 --> 00:03:37,645 indexing, sharding, the flexible documents 73 00:03:37,645 --> 00:03:41,290 that we already talked about, native duplication 74 00:03:41,290 --> 00:03:43,010 and so much more. 75 00:03:43,010 --> 00:03:45,850 And you don't need to know all of this, of course, 76 00:03:45,850 --> 00:03:50,320 but it's sure nice to know that MongoDB is highly performant 77 00:03:50,320 --> 00:03:52,100 if we need it to be. 78 00:03:52,100 --> 00:03:55,270 Finally, I just wanted to add that MongoDB 79 00:03:55,270 --> 00:03:57,710 is a free and open-source database, 80 00:03:57,710 --> 00:04:01,350 published under the SSPL license. 81 00:04:01,350 --> 00:04:04,700 So in summary, we can say that MongoDB 82 00:04:04,700 --> 00:04:06,770 is a great database system 83 00:04:06,770 --> 00:04:09,600 to build many types of modern, scalable 84 00:04:09,600 --> 00:04:11,900 and flexible web applications. 85 00:04:11,900 --> 00:04:15,450 And in fact, Mongo is probably the most used database 86 00:04:15,450 --> 00:04:18,250 with no JS, and so it's a perfect fit 87 00:04:18,250 --> 00:04:20,690 for us to use in this course. 88 00:04:20,690 --> 00:04:22,970 Okay, now let's talk a bit deeper 89 00:04:22,970 --> 00:04:25,910 about these documents, and returning 90 00:04:25,910 --> 00:04:28,540 to our blog posts example from the beginning, 91 00:04:28,540 --> 00:04:31,330 this could be a very simple representation 92 00:04:31,330 --> 00:04:34,140 of a single post document, right? 93 00:04:34,140 --> 00:04:36,720 And now just for the sake of comparison, 94 00:04:36,720 --> 00:04:38,930 here is how that exact same data 95 00:04:38,930 --> 00:04:42,250 could look like as a row in a relational database 96 00:04:42,250 --> 00:04:45,580 like MySQL, or even in an Excel spreadsheet, 97 00:04:45,580 --> 00:04:47,640 if you're more used to that. 98 00:04:47,640 --> 00:04:49,730 So as I mentioned a bit earlier, 99 00:04:49,730 --> 00:04:53,190 MongoDB uses a data format similar to JSON 100 00:04:53,190 --> 00:04:56,070 for data storage called BSON. 101 00:04:56,070 --> 00:04:58,970 It looks basically the same as JSON, 102 00:04:58,970 --> 00:05:01,650 but it's typed, meaning that all values 103 00:05:01,650 --> 00:05:05,450 will have a data type such as string, Boolean, 104 00:05:05,450 --> 00:05:09,050 date and teacher, double object or more. 105 00:05:09,050 --> 00:05:11,890 We will learn all about this later in practice. 106 00:05:11,890 --> 00:05:15,030 So what this means is that all MongoDB documents 107 00:05:15,030 --> 00:05:16,700 will actually be typed, 108 00:05:16,700 --> 00:05:20,220 which is different from JSON, all right? 109 00:05:20,220 --> 00:05:23,830 Now just like JSON, these BSON documents 110 00:05:23,830 --> 00:05:26,570 will also have fields and data is stored 111 00:05:26,570 --> 00:05:28,270 in key value pairs. 112 00:05:28,270 --> 00:05:30,840 On the other hand, in a relational database, 113 00:05:30,840 --> 00:05:33,730 each field is called a column. 114 00:05:33,730 --> 00:05:35,400 So here again you can see how 115 00:05:35,400 --> 00:05:38,920 these databases arrange data in table structures 116 00:05:38,920 --> 00:05:42,590 while our JSON data is so much more flexible. 117 00:05:42,590 --> 00:05:44,300 Take for example the tags field, 118 00:05:44,300 --> 00:05:46,170 where we actually have an array, 119 00:05:46,170 --> 00:05:50,470 so we have basically multiple values for one field, right? 120 00:05:50,470 --> 00:05:54,140 So MongoDB, space and DV in this case. 121 00:05:54,140 --> 00:05:57,040 But in relational databases, that's not really allowed. 122 00:05:57,040 --> 00:06:00,020 We cannot have multiple values in one field, 123 00:06:00,020 --> 00:06:03,100 and so we would actually have to find workarounds for this 124 00:06:03,100 --> 00:06:05,150 which could then involve more work 125 00:06:05,150 --> 00:06:07,550 and more overall complication. 126 00:06:07,550 --> 00:06:10,540 Now another extremely important feature in MongoDB 127 00:06:10,540 --> 00:06:13,040 is the concept of embedded documents, 128 00:06:13,040 --> 00:06:16,120 which is, again, something not present 129 00:06:16,120 --> 00:06:18,290 in relational databases. 130 00:06:18,290 --> 00:06:19,970 So in our comments field here, 131 00:06:19,970 --> 00:06:23,050 we have an array which contains three objects. 132 00:06:23,050 --> 00:06:24,500 One for each document, 133 00:06:24,500 --> 00:06:26,280 and each of them could actually be 134 00:06:26,280 --> 00:06:28,700 its own document, right? 135 00:06:28,700 --> 00:06:31,360 So just imagine we had a comments collection 136 00:06:31,360 --> 00:06:34,550 which contained a bunch of comment documents. 137 00:06:34,550 --> 00:06:37,670 Each of them could actually look exactly like this, 138 00:06:37,670 --> 00:06:40,600 so with an author and with the comment text, 139 00:06:40,600 --> 00:06:42,200 but instead of doing that, 140 00:06:42,200 --> 00:06:45,850 we include these comments right into the blog post document, 141 00:06:45,850 --> 00:06:49,610 so in other words, we embed the comment documents 142 00:06:49,610 --> 00:06:52,270 right into the post document. 143 00:06:52,270 --> 00:06:55,410 So this process of embedding, or de-normalizing 144 00:06:55,410 --> 00:06:59,070 as we can also call it, is basically to include, 145 00:06:59,070 --> 00:07:01,930 so, to embed, some related data all 146 00:07:01,930 --> 00:07:04,040 into one single document. 147 00:07:04,040 --> 00:07:07,540 In this example, the comments are related to the post, 148 00:07:07,540 --> 00:07:10,880 and so they are included in the same document. 149 00:07:10,880 --> 00:07:13,380 And this makes a database more performant 150 00:07:13,380 --> 00:07:15,760 in some situations because this way, 151 00:07:15,760 --> 00:07:17,340 it can be easier to read all 152 00:07:17,340 --> 00:07:20,150 the data that we need all at once. 153 00:07:20,150 --> 00:07:23,270 And this is something that we're gonna talk about a lot 154 00:07:23,270 --> 00:07:25,320 when learning about data modeling, 155 00:07:25,320 --> 00:07:28,720 but for now, I hope that this still makes sense to you. 156 00:07:28,720 --> 00:07:31,850 Now, the opposite of embedding or de-normalizing, 157 00:07:31,850 --> 00:07:35,520 is normalizing, and that's how the data is always modeled 158 00:07:35,520 --> 00:07:37,200 in relational databases. 159 00:07:37,200 --> 00:07:40,430 So in that case, it's not possible to embed data, 160 00:07:40,430 --> 00:07:42,070 and so the solution is to create 161 00:07:42,070 --> 00:07:44,480 a whole new table for the comments 162 00:07:44,480 --> 00:07:47,320 and then join the tables by referencing 163 00:07:47,320 --> 00:07:50,250 to the ID field of the comments table. 164 00:07:50,250 --> 00:07:52,590 Now we're not gonna use relational databases 165 00:07:52,590 --> 00:07:55,460 in this course, but I believe it's still important 166 00:07:55,460 --> 00:07:57,510 to know the differences if you wanna become 167 00:07:57,510 --> 00:07:59,630 a good back-end developer. 168 00:07:59,630 --> 00:08:01,940 Anyway, and now just to finish, 169 00:08:01,940 --> 00:08:04,810 two more things about BSON documents. 170 00:08:04,810 --> 00:08:07,510 First, the maximum size for each document 171 00:08:07,510 --> 00:08:12,120 is currently 16 MB, but this might increase in the future. 172 00:08:12,120 --> 00:08:16,180 And second, each document contains a unique ID, 173 00:08:16,180 --> 00:08:19,900 which acts as a primary key of that document. 174 00:08:19,900 --> 00:08:23,780 It's automatically generated with the object ID data type 175 00:08:23,780 --> 00:08:26,000 each time there is a new document, 176 00:08:26,000 --> 00:08:28,605 and so we don't have to worry about it. 177 00:08:28,605 --> 00:08:32,240 All right, and that should be a brief enough overview 178 00:08:32,240 --> 00:08:33,610 to get us started, 179 00:08:33,610 --> 00:08:37,210 and to actually use MongoDB from the next lecture on. 180 00:08:37,210 --> 00:08:38,873 So, let's move on now. 14233

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.