All language subtitles for 008 CRUD_ Updating Documents_Downloadly.ir_en

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
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
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian Download
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:01,180 --> 00:00:02,570 Welcome back. 2 00:00:02,570 --> 00:00:05,269 I hope you're having fun so far in this section. 3 00:00:05,269 --> 00:00:08,429 I know that I am and so let's now keep it moving 4 00:00:08,429 --> 00:00:12,683 and learning how to update documents with Mongodb. 5 00:00:14,720 --> 00:00:17,087 So back in our mongoshell let's now 6 00:00:17,087 --> 00:00:20,807 use db.tours.updateOne. 7 00:00:23,884 --> 00:00:25,150 Okay? 8 00:00:25,150 --> 00:00:28,050 So that's similar to .insertone that we used 9 00:00:28,050 --> 00:00:29,760 to create a new document. 10 00:00:29,760 --> 00:00:32,430 And remember how we also had .insertmany 11 00:00:32,430 --> 00:00:35,120 and so we also have .updatemany. 12 00:00:35,120 --> 00:00:37,640 Now how does .updatemany work? 13 00:00:37,640 --> 00:00:39,776 Well, first we need to select which documents 14 00:00:39,776 --> 00:00:42,992 we actually want to update and, second, we need 15 00:00:42,992 --> 00:00:46,460 to pass in the data that should be updated. 16 00:00:46,460 --> 00:00:49,277 So the first argument is basically a filter object 17 00:00:49,277 --> 00:00:52,120 just like we learned in the last lecture. 18 00:00:52,120 --> 00:00:54,286 So we basically need to query for the documents 19 00:00:54,286 --> 00:00:57,510 that we want to update and let's start with that 20 00:00:57,510 --> 00:01:00,012 starting in a very simple way. 21 00:01:00,012 --> 00:01:02,150 So I'm just going to select based 22 00:01:02,150 --> 00:01:03,150 on the name 23 00:01:05,230 --> 00:01:06,623 The Snow Adventure. 24 00:01:08,890 --> 00:01:09,723 Okay? 25 00:01:09,723 --> 00:01:11,935 So that is my very simple filter object 26 00:01:11,935 --> 00:01:15,690 so specifying the tour that I want to update 27 00:01:15,690 --> 00:01:17,500 And now the second object that I need 28 00:01:17,500 --> 00:01:21,120 to specify is what I actually want to update. 29 00:01:21,120 --> 00:01:24,930 So another object here and then we close the function. 30 00:01:24,930 --> 00:01:28,500 And so in here we need to use the set operator. 31 00:01:28,500 --> 00:01:31,455 So, again, this works using operators just like 32 00:01:31,455 --> 00:01:35,820 in these complex queries that we saw in the last video. 33 00:01:35,820 --> 00:01:39,342 So set and then we need to create yet another object 34 00:01:39,342 --> 00:01:43,280 and finally in this one we can specify the property 35 00:01:43,280 --> 00:01:47,013 that we want to update and the value we want to set it to. 36 00:01:48,140 --> 00:01:49,792 So, in this case, what we want to do 37 00:01:49,792 --> 00:01:53,403 is to set the price to 597. 38 00:01:54,600 --> 00:01:55,433 All right? 39 00:01:55,433 --> 00:01:58,710 So this one was 497 and so we're now, basically, 40 00:01:58,710 --> 00:02:01,272 increasing it to 597. 41 00:02:01,272 --> 00:02:02,430 All right? 42 00:02:02,430 --> 00:02:06,380 So let's hit return and it's then updated, our tour. 43 00:02:06,380 --> 00:02:08,651 Now if this query here would have matched 44 00:02:08,651 --> 00:02:10,777 multiple documents. 45 00:02:10,777 --> 00:02:13,034 I can't select it for some reason, 46 00:02:13,034 --> 00:02:14,590 but you can see it. 47 00:02:14,590 --> 00:02:16,656 So if this query that we did here 48 00:02:16,656 --> 00:02:19,710 would have selected multiple documents then only 49 00:02:19,710 --> 00:02:22,220 the first one would have been updated because 50 00:02:22,220 --> 00:02:24,091 we were using .updatemain. 51 00:02:24,091 --> 00:02:26,566 And so if we already know beforehand that our query 52 00:02:26,566 --> 00:02:29,020 is going to match multiple documents, 53 00:02:29,020 --> 00:02:30,900 then we should use .updatemany 54 00:02:30,900 --> 00:02:32,430 and not .updateone. 55 00:02:32,430 --> 00:02:33,263 Okay? 56 00:02:33,263 --> 00:02:35,380 Now just to show you that it actually worked, 57 00:02:35,380 --> 00:02:38,560 let's take a look at all the documents. 58 00:02:38,560 --> 00:02:43,560 So db.tours.find and, indeed, 59 00:02:44,550 --> 00:02:46,650 we have The Snow Adventure here 60 00:02:46,650 --> 00:02:48,140 with the new price. 61 00:02:48,140 --> 00:02:48,973 Great. 62 00:02:48,973 --> 00:02:52,390 So we updated a property that already existed. 63 00:02:52,390 --> 00:02:55,280 So the price was already there and we simply set it 64 00:02:55,280 --> 00:02:58,590 to a new value but we can also create new properties 65 00:02:58,590 --> 00:03:02,500 and set these to new values, of course. 66 00:03:02,500 --> 00:03:04,930 And it actually works in the same way but 67 00:03:04,930 --> 00:03:06,870 let me show it to you anyway. 68 00:03:06,870 --> 00:03:09,740 And what I want to do here is to find premium tours 69 00:03:09,740 --> 00:03:12,734 and give them a premium field set to true. 70 00:03:12,734 --> 00:03:15,740 So what are our premium tours? 71 00:03:15,740 --> 00:03:18,453 Well, let's first do a find. 72 00:03:19,290 --> 00:03:21,960 So just to specify that query. 73 00:03:21,960 --> 00:03:24,430 And actually we already did that before. 74 00:03:24,430 --> 00:03:27,880 So the tours that I want should have a price greater 75 00:03:27,880 --> 00:03:32,340 than 500 and a rating greater or equal to 4.8. 76 00:03:32,340 --> 00:03:35,366 So these are the really our premium tours, basically, 77 00:03:35,366 --> 00:03:38,040 so really the ones that are most expensive 78 00:03:38,040 --> 00:03:39,960 and most well rated. 79 00:03:39,960 --> 00:03:43,630 So to create this query its actually quite simple. 80 00:03:43,630 --> 00:03:47,090 And again because we actually already did it before. 81 00:03:47,090 --> 00:03:49,709 Now what I want you to do here is to pause the video 82 00:03:49,709 --> 00:03:51,592 and even if you remember it, 83 00:03:51,592 --> 00:03:54,150 type out this query on your own. 84 00:03:54,150 --> 00:03:56,929 And if you don't remember it, well that's even better 85 00:03:56,929 --> 00:03:58,921 then you can practice what you just learned 86 00:03:58,921 --> 00:04:00,202 in the last video. 87 00:04:00,202 --> 00:04:01,450 All right? 88 00:04:01,450 --> 00:04:04,001 So please pause the video here and try to come up 89 00:04:04,001 --> 00:04:06,410 with this query on your own. 90 00:04:06,410 --> 00:04:08,640 So again we want the price to be greater than 91 00:04:08,640 --> 00:04:11,983 500 and the rating greater or equal to 4.8. 92 00:04:18,970 --> 00:04:20,950 Okay, hope you did it. 93 00:04:20,950 --> 00:04:23,070 And this is the solution. 94 00:04:23,070 --> 00:04:28,070 So price should be greater or equal than 500 95 00:04:29,533 --> 00:04:34,533 and the rating should be greater or equal to 4.8. 96 00:04:39,990 --> 00:04:41,080 Okay? 97 00:04:41,080 --> 00:04:43,450 And here we set just greater than which 98 00:04:43,450 --> 00:04:45,200 is actually the same. 99 00:04:45,200 --> 00:04:47,020 It's gonna give us the same result. 100 00:04:47,020 --> 00:04:49,893 But never mind, let's do it exactly as I said. 101 00:04:50,830 --> 00:04:54,310 And so just to make sure let's see if we get the 102 00:04:54,310 --> 00:04:57,491 perfect result and indeed this is the tour 103 00:04:57,491 --> 00:05:01,000 that has this premium price and at the same time 104 00:05:01,000 --> 00:05:02,220 this premium rating. 105 00:05:02,220 --> 00:05:03,570 Okay? 106 00:05:03,570 --> 00:05:06,500 And in this case, we have only one result but, 107 00:05:06,500 --> 00:05:09,230 of course, we might have multiple results. 108 00:05:09,230 --> 00:05:12,310 And so let's now use .updatemany. 109 00:05:12,310 --> 00:05:15,220 So db.tours.updatemany. 110 00:05:19,443 --> 00:05:22,670 And so our filter object that we want is this one. 111 00:05:22,670 --> 00:05:24,320 So I'm just copying it from here. 112 00:05:26,220 --> 00:05:28,739 So that is the first argument and then second 113 00:05:28,739 --> 00:05:32,100 is actually what we want to update. 114 00:05:32,100 --> 00:05:33,300 Remember that? 115 00:05:33,300 --> 00:05:36,270 So again we use the set operator and then 116 00:05:36,270 --> 00:05:40,287 we say that we want premium to be true. 117 00:05:40,287 --> 00:05:41,200 Okay? 118 00:05:41,200 --> 00:05:43,892 And so this time we actually create a new field here 119 00:05:43,892 --> 00:05:45,822 and we set it to true. 120 00:05:45,822 --> 00:05:46,713 Okay? 121 00:05:46,713 --> 00:05:50,130 Give that one a save and actually we were missing 122 00:05:50,130 --> 00:05:53,787 some closing brace and so we cannot really go back 123 00:05:53,787 --> 00:05:56,353 so let me try to add it here. 124 00:05:57,580 --> 00:06:00,810 But, that doesn't really work, but anyway it doesn't 125 00:06:00,810 --> 00:06:03,684 matter we can just go back to the last command 126 00:06:03,684 --> 00:06:06,490 and then correct it. 127 00:06:06,490 --> 00:06:09,190 So this is the brace that we were missing then 128 00:06:09,190 --> 00:06:11,213 close it and here we go. 129 00:06:11,213 --> 00:06:16,213 So db.tours.find just to check it now. 130 00:06:18,530 --> 00:06:21,100 And here we have the last one which now 131 00:06:21,100 --> 00:06:23,300 has premium set to true. 132 00:06:23,300 --> 00:06:25,797 And again this was the only document that matched 133 00:06:25,797 --> 00:06:30,000 our query and so it's the only one that got this new 134 00:06:30,000 --> 00:06:31,365 premium property here, 135 00:06:31,365 --> 00:06:34,120 but if there were multiple documents matching 136 00:06:34,120 --> 00:06:37,200 that query, then all of them would have gotten 137 00:06:37,200 --> 00:06:39,100 this premium true. 138 00:06:39,100 --> 00:06:39,933 Okay? 139 00:06:39,933 --> 00:06:42,680 So that's why we used .updatemany and remember 140 00:06:42,680 --> 00:06:45,463 if we used .updateone then only the first document 141 00:06:45,463 --> 00:06:48,460 matching the query gets updated. 142 00:06:48,460 --> 00:06:49,293 Okay? 143 00:06:49,293 --> 00:06:53,110 So that's how we update documents at least partially 144 00:06:53,110 --> 00:06:57,210 so with this .updatemany or .updateone we usually only 145 00:06:57,210 --> 00:07:00,440 update parts of the document, but we can also 146 00:07:00,440 --> 00:07:03,710 completely replace the content of the document. 147 00:07:03,710 --> 00:07:05,870 And for that we use .replaceone. 148 00:07:05,870 --> 00:07:08,100 I'm not going to do that, but for the sake 149 00:07:08,100 --> 00:07:11,360 of completeness I wanted to show it to you as well. 150 00:07:11,360 --> 00:07:16,360 So db.tours.replaceone or .replacemany, okay? 151 00:07:17,570 --> 00:07:19,700 And so in here, just like before, you would 152 00:07:19,700 --> 00:07:22,740 pass the search query and then new data that you 153 00:07:22,740 --> 00:07:24,763 want to put in this document. 154 00:07:24,763 --> 00:07:27,633 All right, not going to do that here. 155 00:07:29,180 --> 00:07:31,630 But now you know that it also exists. 156 00:07:31,630 --> 00:07:34,645 And like this we have three of our correct operations 157 00:07:34,645 --> 00:07:36,610 already completed. 158 00:07:36,610 --> 00:07:40,063 So creating, reading, and updating and so 159 00:07:40,063 --> 00:07:43,000 as you can guess in the next video we will talk 160 00:07:43,000 --> 00:07:44,853 about deleting documents. 12075

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