﻿1
00:00:01,150 --> 00:00:03,650
‫Hey, there. So in this video we're gonna keep

2
00:00:03,650 --> 00:00:06,670
‫working with the aggregation pipeline.

3
00:00:06,670 --> 00:00:09,540
‫And I really love this video because

4
00:00:09,540 --> 00:00:13,083
‫in this one we're gonna solve a real business problem.

5
00:00:14,570 --> 00:00:17,220
‫So let's imagine that we are really developing

6
00:00:17,220 --> 00:00:19,730
‫this application for the Nature's Company.

7
00:00:19,730 --> 00:00:21,780
‫And so let's say that they ask us

8
00:00:21,780 --> 00:00:24,090
‫to implement a function to calculate

9
00:00:24,090 --> 00:00:26,720
‫the busiest month of a given year.

10
00:00:26,720 --> 00:00:29,538
‫So basically by calculating how many tours

11
00:00:29,538 --> 00:00:33,400
‫start in each of the month of the given year.

12
00:00:33,400 --> 00:00:35,350
‫And the company really needs this fine tune

13
00:00:35,350 --> 00:00:37,920
‫to prepare accordingly for these tours,

14
00:00:37,920 --> 00:00:40,930
‫like to hire tour guides or to buy the equipment

15
00:00:40,930 --> 00:00:42,850
‫and handle all the stuff like that.

16
00:00:42,850 --> 00:00:44,850
‫So this is a real business problem

17
00:00:44,850 --> 00:00:46,301
‫that we now can solve

18
00:00:46,301 --> 00:00:49,550
‫using aggregation pipelines. Okay?

19
00:00:49,550 --> 00:00:52,110
‫And so, this is gonna be a real challenge

20
00:00:52,110 --> 00:00:54,570
‫and I-- I hope it's gonna be really fun

21
00:00:54,570 --> 00:00:58,030
‫to solve this kind of real business need.

22
00:00:58,030 --> 00:01:01,443
‫At least if Nature's was a real business, I guess.

23
00:01:02,730 --> 00:01:05,810
‫So, let's start by

24
00:01:05,810 --> 00:01:08,990
‫again creating the function.

25
00:01:08,990 --> 00:01:12,463
‫So export dot and I'm gonna call it:

26
00:01:13,700 --> 00:01:15,583
‫get monthly plan.

27
00:01:17,520 --> 00:01:18,353
‫All right.

28
00:01:18,353 --> 00:01:21,030
‫And again it's gonna be a-- an async function

29
00:01:23,060 --> 00:01:27,810
‫method, request response or try cache block

30
00:01:33,820 --> 00:01:36,010
‫and I could actually just have gone and copied it

31
00:01:36,010 --> 00:01:37,483
‫from up here.

32
00:01:38,600 --> 00:01:41,480
‫But, nevermind. All right.

33
00:01:41,480 --> 00:01:46,250
‫And uh now let's actually also uh implement the

34
00:01:46,250 --> 00:01:47,723
‫route uh right here.

35
00:01:48,628 --> 00:01:50,528
‫And I'm just gonna duplicate this line

36
00:01:53,200 --> 00:01:55,390
‫so monthly plan...

37
00:01:56,650 --> 00:01:59,020
‫And then here this one is called:

38
00:01:59,020 --> 00:02:02,610
‫get monthly plan. And actually we wanna be able

39
00:02:02,610 --> 00:02:06,553
‫to pass a year in the URL. And so let's use

40
00:02:06,553 --> 00:02:11,113
‫a URL parameter for that. All right.

41
00:02:12,360 --> 00:02:14,500
‫So uh...

42
00:02:14,500 --> 00:02:16,950
‫coming back here let's start by

43
00:02:16,950 --> 00:02:18,930
‫uh defining the year.

44
00:02:18,930 --> 00:02:23,930
‫So the year is coming from req dot params dot year.

45
00:02:24,660 --> 00:02:26,300
‫Remember that

46
00:02:26,300 --> 00:02:28,960
‫and then again that trick to transform it

47
00:02:28,960 --> 00:02:31,083
‫into a number. Okay?

48
00:02:31,930 --> 00:02:34,820
‫Then I'm gonna create the plan variable

49
00:02:35,840 --> 00:02:40,220
‫which is gonna await tour dot aggregate.

50
00:02:40,220 --> 00:02:42,950
‫So just like before and for now

51
00:02:42,950 --> 00:02:45,400
‫I'm gonna leave it empty here.

52
00:02:45,400 --> 00:02:47,440
‫And I will copy this piece of code

53
00:02:47,440 --> 00:02:49,103
‫to then send the results.

54
00:02:51,800 --> 00:02:55,900
‫And this one is called plan and all right.

55
00:02:55,900 --> 00:02:59,340
‫So now we're ready to start our aggregation pipeline

56
00:02:59,340 --> 00:03:01,990
‫just like we did in the last video.

57
00:03:01,990 --> 00:03:04,260
‫Now to start, let's actually take a look

58
00:03:04,260 --> 00:03:05,761
‫at the complete results.

59
00:03:05,761 --> 00:03:07,922
‫Just so we can get a better idea

60
00:03:07,922 --> 00:03:10,123
‫of what we actually need to build here.

61
00:03:12,410 --> 00:03:16,290
‫So let's do get all tours and get completely rid

62
00:03:17,200 --> 00:03:19,313
‫of this query string.

63
00:03:20,720 --> 00:03:23,030
‫And so here we have all nine tours

64
00:03:23,030 --> 00:03:25,930
‫and each of the tours, remember, has an array

65
00:03:25,930 --> 00:03:28,120
‫of these start dates.

66
00:03:28,120 --> 00:03:32,830
‫So one tour will start on April 25th, 2021.

67
00:03:32,830 --> 00:03:37,090
‫Then the next one starts on July 20th

68
00:03:37,090 --> 00:03:39,870
‫and then October 5th. All right.

69
00:03:39,870 --> 00:03:43,140
‫Then uh the next one has this start date

70
00:03:43,140 --> 00:03:46,520
‫and all of them I believe have three starting dates.

71
00:03:46,520 --> 00:03:50,670
‫Okay? So, these dates is what we actually need

72
00:03:50,670 --> 00:03:54,160
‫as a starting point to create this function

73
00:03:54,160 --> 00:03:56,790
‫or to create this aggregation pipeline.

74
00:03:56,790 --> 00:04:00,480
‫Because remember, we want to count how many tours there are

75
00:04:00,480 --> 00:04:02,960
‫for each of the months in a given year.

76
00:04:02,960 --> 00:04:07,110
‫And so let's so that we're analyzing 2021, okay?

77
00:04:07,110 --> 00:04:11,130
‫We have one tour in April, one in July, one in October.

78
00:04:11,130 --> 00:04:13,840
‫Then let's take a look at the next tour.

79
00:04:13,840 --> 00:04:18,230
‫Here we have one in June, one in July, and one in August.

80
00:04:18,230 --> 00:04:20,170
‫So in July we already have two.

81
00:04:20,170 --> 00:04:22,890
‫So this one and this one.

82
00:04:22,890 --> 00:04:26,780
‫Next one we have uh, one in March, one in May,

83
00:04:26,780 --> 00:04:29,963
‫and one in June. So in June we also already have two.

84
00:04:30,940 --> 00:04:34,390
‫Okay? And so we can keep going and doing it manually

85
00:04:34,390 --> 00:04:37,920
‫but of course we want to do it with our aggregation.

86
00:04:37,920 --> 00:04:40,360
‫So if you want to add all of this together

87
00:04:40,360 --> 00:04:44,030
‫the easiest way would basically be to have one tour

88
00:04:44,030 --> 00:04:47,550
‫for each of these dates here, right?

89
00:04:47,550 --> 00:04:50,660
‫And we can actually do that using the aggregation pipeline.

90
00:04:50,660 --> 00:04:53,460
‫There is a stage for doing exactly that.

91
00:04:53,460 --> 00:04:56,060
‫And that is called unwind.

92
00:04:56,060 --> 00:04:58,320
‫So let's use it now and I will then show you

93
00:04:58,320 --> 00:05:02,023
‫uh-- the result of it and why we really need it.

94
00:05:02,970 --> 00:05:05,796
‫Okay? So, again we define an object

95
00:05:05,796 --> 00:05:08,400
‫and then the name of the stage.

96
00:05:08,400 --> 00:05:12,280
‫And in this case it is: unwind. Okay?

97
00:05:12,280 --> 00:05:15,940
‫And what unwind is gonna do is basically deconstruct

98
00:05:15,940 --> 00:05:18,132
‫an array field from the info documents

99
00:05:18,132 --> 00:05:22,680
‫and then output one document for each element of the array.

100
00:05:22,680 --> 00:05:24,670
‫And so that's what I was saying before.

101
00:05:24,670 --> 00:05:27,310
‫Which is, that basically we want to have one tour

102
00:05:27,310 --> 00:05:31,270
‫for each of these dates in the array. Okay?

103
00:05:31,270 --> 00:05:35,713
‫And this stage can be really useful for so many cases.

104
00:05:38,490 --> 00:05:41,640
‫So, the field with the array that we want to unwind

105
00:05:41,640 --> 00:05:43,410
‫is start dates.

106
00:05:43,410 --> 00:05:45,970
‫All right and so for now that's actually all.

107
00:05:45,970 --> 00:05:49,210
‫So I just want to show you the result of that right now.

108
00:05:49,210 --> 00:05:52,170
‫And I think we already actually have everything in place

109
00:05:52,170 --> 00:05:55,270
‫for this to work. So just keep in mind

110
00:05:55,270 --> 00:05:58,862
‫that the route is called monthly plan and then with a year.

111
00:05:58,862 --> 00:06:01,280
‫Which for now it's not gonna have any results

112
00:06:02,600 --> 00:06:05,243
‫but um, we have to define it anyway.

113
00:06:10,100 --> 00:06:15,030
‫So monthly plan and the year of 2021.

114
00:06:15,030 --> 00:06:16,363
‫So let's send this now.

115
00:06:17,580 --> 00:06:21,250
‫And indeed we now have uh this start date

116
00:06:21,250 --> 00:06:24,740
‫no longer as an array but only this first element

117
00:06:24,740 --> 00:06:26,660
‫of the array that we had before.

118
00:06:26,660 --> 00:06:30,550
‫Let's put them side-by-side. And so you see, we had

119
00:06:30,550 --> 00:06:32,580
‫or actually let's do it with the first one.

120
00:06:32,580 --> 00:06:35,963
‫So we had the first taker for April 25th,

121
00:06:36,880 --> 00:06:40,150
‫July 20th, and October 5th.

122
00:06:40,150 --> 00:06:45,150
‫And so now we have the first hiker on this date here,

123
00:06:45,490 --> 00:06:49,640
‫then we have the first hiker on uh, July 20,

124
00:06:49,640 --> 00:06:53,960
‫and now we will have the first hiker for October 5th.

125
00:06:53,960 --> 00:06:56,170
‫So, exactly the result that we wanted

126
00:06:56,170 --> 00:06:59,861
‫because now we have one document for each of the dates.

127
00:06:59,861 --> 00:07:04,300
‫Okay? So instead of having nine, we now have 27

128
00:07:04,300 --> 00:07:07,443
‫which is nine times three. All right.

129
00:07:08,300 --> 00:07:11,570
‫So, that's the first date. Now let's actually go ahead

130
00:07:11,570 --> 00:07:15,233
‫and select the documents for the year that was passed in.

131
00:07:16,590 --> 00:07:20,225
‫Okay? And remember which stage we use for that

132
00:07:20,225 --> 00:07:23,800
‫that's right, we use match.

133
00:07:23,800 --> 00:07:28,160
‫So remember, match is basically to select documents.

134
00:07:28,160 --> 00:07:29,870
‫So just to do a query.

135
00:07:29,870 --> 00:07:33,190
‫And so the year is in the start dates.

136
00:07:33,190 --> 00:07:36,023
‫So start dates is the one that we're gonna search for.

137
00:07:37,180 --> 00:07:41,420
‫So start dates, and now what do we want?

138
00:07:41,420 --> 00:07:45,750
‫Well we want the--the date basically to be greater

139
00:07:45,750 --> 00:07:48,150
‫than January 1st of the current year,

140
00:07:48,150 --> 00:07:51,740
‫so let's say 2021. And we want it to be less

141
00:07:51,740 --> 00:07:55,200
‫than January 1st of 2022, all right.

142
00:07:55,200 --> 00:07:59,520
‫So basically we want it to be 2020 and 2022. All right?

143
00:08:01,350 --> 00:08:03,130
‫So let's put that in code now.

144
00:08:03,130 --> 00:08:05,970
‫So start dates and then we need another object

145
00:08:05,970 --> 00:08:10,687
‫for the operators. So, greater or equal than

146
00:08:10,687 --> 00:08:14,930
‫and in MongoDB this works perfectly fine with dates.

147
00:08:14,930 --> 00:08:18,330
‫So Mongo is actually perfect for working with dates like

148
00:08:18,330 --> 00:08:22,350
‫doing date comparisons. So it works really great.

149
00:08:22,350 --> 00:08:25,774
‫So now we actually need to define a new date here

150
00:08:25,774 --> 00:08:29,580
‫so that, that one can then be compared with the date

151
00:08:29,580 --> 00:08:31,290
‫that's in each of the documents.

152
00:08:31,290 --> 00:08:34,910
‫So the formula of the date is year, month, and date.

153
00:08:34,910 --> 00:08:37,250
‫And so let's do a template string here

154
00:08:38,920 --> 00:08:41,093
‫and use our year variable.

155
00:08:43,826 --> 00:08:46,100
‫So January 1st.

156
00:08:46,100 --> 00:08:49,050
‫So, we want our date to be greater or equal than

157
00:08:49,050 --> 00:08:54,050
‫January 1st, 2021 and let's actually write that here

158
00:08:54,620 --> 00:08:58,540
‫just to keep it in mind. And we want it to be less

159
00:09:00,260 --> 00:09:03,763
‫less than, or we can say less than, equal.

160
00:09:05,150 --> 00:09:10,150
‫Let's go ahead and copy this one and then

161
00:09:10,160 --> 00:09:15,160
‫December 31st. Okay? So, basically we want it to be between

162
00:09:15,980 --> 00:09:18,520
‫the first day of the year and the last day

163
00:09:18,520 --> 00:09:20,853
‫of the current year. Okay?

164
00:09:22,310 --> 00:09:25,060
‫So let's keep testing it, so I will test it now

165
00:09:25,060 --> 00:09:28,640
‫after each of the stages. So sending this

166
00:09:28,640 --> 00:09:33,363
‫and now we should have only tours here that are in 2021.

167
00:09:34,230 --> 00:09:38,380
‫So let's confirm that 2021, here as well, here as well,

168
00:09:38,380 --> 00:09:40,040
‫here as well.

169
00:09:40,040 --> 00:09:45,040
‫Mm, so you see we really have no other year. Right.

170
00:09:45,050 --> 00:09:50,050
‫It's always 2021. Okay? So I think we've seen enough.

171
00:09:50,930 --> 00:09:55,870
‫And so, let's go back. Next up is where the magic happens.

172
00:09:55,870 --> 00:09:58,923
‫And so that is usually in the group stage.

173
00:09:59,960 --> 00:10:04,390
‫So let's add the group here, so just like before

174
00:10:04,390 --> 00:10:08,986
‫so group and remember we need to specify the ID field

175
00:10:08,986 --> 00:10:13,986
‫basically to say what we want to use to group our documents.

176
00:10:14,220 --> 00:10:17,330
‫Now we want to group them by the months, right?

177
00:10:17,330 --> 00:10:20,660
‫But currently we simply have the entire date,

178
00:10:20,660 --> 00:10:24,600
‫with the year, the month, the date, and even the hour.

179
00:10:24,600 --> 00:10:27,330
‫So I guess it's 10 in the morning or something.

180
00:10:27,330 --> 00:10:31,294
‫But again we only want the month. So let me show you

181
00:10:31,294 --> 00:10:34,843
‫just another like magical MongoDB operator.

182
00:10:36,340 --> 00:10:41,340
‫So, where is that? So, here, back in this reference here

183
00:10:42,500 --> 00:10:46,540
‫we actually have a couple of aggregation pipeline operators.

184
00:10:46,540 --> 00:10:50,320
‫And it's in here where we have this really handy uh

185
00:10:50,320 --> 00:10:53,369
‫date operator. So let's take a look at this.

186
00:10:53,369 --> 00:10:56,540
‫And the one that we're gonna use is month.

187
00:10:56,540 --> 00:11:00,210
‫So it returns to month for a date as a number.

188
00:11:00,210 --> 00:11:02,770
‫And so this will basically extract the month

189
00:11:02,770 --> 00:11:07,500
‫out of our date. And there are lots of other operators.

190
00:11:07,500 --> 00:11:10,990
‫Like this for example, we could even calculate the week

191
00:11:10,990 --> 00:11:12,590
‫or just the year, okay?

192
00:11:12,590 --> 00:11:14,940
‫But the week could also be very handy.

193
00:11:14,940 --> 00:11:19,110
‫But let's uh, let's keep it with the month. All right?

194
00:11:19,110 --> 00:11:21,320
‫So again, you can take a look at these uh--

195
00:11:21,320 --> 00:11:23,350
‫special aggregation operators.

196
00:11:23,350 --> 00:11:25,843
‫Because there are a ton of them, as you see here.

197
00:11:26,780 --> 00:11:29,710
‫Okay? So actually these operators that we're using here

198
00:11:29,710 --> 00:11:33,230
‫in the aggregation pipeline are uh, yeah exactly that.

199
00:11:33,230 --> 00:11:35,580
‫They are aggregation pipeline operators.

200
00:11:35,580 --> 00:11:39,900
‫We have stages and then operators that we can use. Okay.

201
00:11:39,900 --> 00:11:42,463
‫And in this case, again, we use the month.

202
00:11:46,653 --> 00:11:49,207
‫And then again the name of the field,

203
00:11:50,330 --> 00:11:54,060
‫where we want to basically extract the date from.

204
00:11:54,060 --> 00:11:58,720
‫All right, give it a save, then that error disappears, okay.

205
00:11:58,720 --> 00:12:01,380
‫So we are grouping it now by the month.

206
00:12:01,380 --> 00:12:03,760
‫And now the real information that we want

207
00:12:03,760 --> 00:12:08,160
‫for each of the month is how many tours start in that month?

208
00:12:08,160 --> 00:12:11,750
‫Right? And for that all we're gonna do is basically count

209
00:12:11,750 --> 00:12:16,190
‫the amount of tours that have a certain month, right?

210
00:12:16,190 --> 00:12:20,453
‫So num of tours starts.

211
00:12:21,520 --> 00:12:23,160
‫And so this one is actually

212
00:12:23,160 --> 00:12:24,923
‫very similar to what we did before.

213
00:12:26,170 --> 00:12:29,080
‫So we use add and then for each of the documents

214
00:12:29,080 --> 00:12:32,200
‫we add one. So just like we did before.

215
00:12:32,200 --> 00:12:37,100
‫But actually it is sum and not add, okay so just like here

216
00:12:37,100 --> 00:12:40,750
‫when we counted the tours for each of the difficulties

217
00:12:40,750 --> 00:12:44,030
‫we simply added the number one for each of the documents.

218
00:12:44,030 --> 00:12:45,773
‫And so here we do the same.

219
00:12:47,180 --> 00:12:50,243
‫All right, so let's again test this.

220
00:12:51,240 --> 00:12:54,193
‫And we're getting really close already to our end result.

221
00:12:55,240 --> 00:12:59,650
‫And indeed, here we go. So we have February with one tour.

222
00:12:59,650 --> 00:13:03,300
‫December with one tour, we have November or actually

223
00:13:03,300 --> 00:13:05,340
‫September with two tours.

224
00:13:05,340 --> 00:13:07,610
‫And then we have two tours in all of this in here

225
00:13:07,610 --> 00:13:10,140
‫actually we have three tours in July.

226
00:13:10,140 --> 00:13:13,750
‫So this is getting pretty close to our result.

227
00:13:13,750 --> 00:13:16,230
‫So that's absolutely fantastic.

228
00:13:16,230 --> 00:13:20,140
‫So this part here, which I think was the most difficult one

229
00:13:20,140 --> 00:13:21,713
‫is already working.

230
00:13:23,900 --> 00:13:24,920
‫All right.

231
00:13:24,920 --> 00:13:27,580
‫Now we actually want some more information

232
00:13:27,580 --> 00:13:29,780
‫which is not only how many tours

233
00:13:29,780 --> 00:13:33,293
‫but also which tours? So let's do that.

234
00:13:34,350 --> 00:13:37,300
‫So if you want information about which tours

235
00:13:37,300 --> 00:13:39,120
‫that should actually be an array.

236
00:13:39,120 --> 00:13:41,839
‫Right? Because how else would we specify

237
00:13:41,839 --> 00:13:45,970
‫two or three different tours in one field, right?

238
00:13:45,970 --> 00:13:48,840
‫And so basically we want to create an array

239
00:13:48,840 --> 00:13:51,652
‫and we do that by using push

240
00:13:51,652 --> 00:13:54,660
‫and then what we're gonna push into that array

241
00:13:54,660 --> 00:13:57,660
‫as each document goes through this pipeline

242
00:13:57,660 --> 00:13:59,853
‫is simply the name of the document,

243
00:14:02,010 --> 00:14:05,920
‫or actually the name field. So not the name of the document

244
00:14:05,920 --> 00:14:07,440
‫but the name field.

245
00:14:07,440 --> 00:14:12,113
‫So in this case the name of the tour. Okay so let's test it.

246
00:14:13,520 --> 00:14:15,380
‫And...

247
00:14:15,380 --> 00:14:17,870
‫bam, here we go!

248
00:14:17,870 --> 00:14:22,430
‫So we have also now the name of the tours in there.

249
00:14:22,430 --> 00:14:26,370
‫So fantastic. Let's see, yeah. Here we have all the three.

250
00:14:26,370 --> 00:14:29,560
‫Next up, let's actually uh change the name

251
00:14:29,560 --> 00:14:31,690
‫of this field here, okay?

252
00:14:31,690 --> 00:14:34,760
‫Now not really change but we're simply gonna add

253
00:14:34,760 --> 00:14:37,660
‫another field which will have the same value here

254
00:14:37,660 --> 00:14:41,363
‫so that later on we can basically delete this ID.

255
00:14:42,400 --> 00:14:46,450
‫Okay, and so for that we're gonna use the next stage

256
00:14:46,450 --> 00:14:48,313
‫which is called: add field.

257
00:14:50,490 --> 00:14:52,640
‫So add field and this one

258
00:14:52,640 --> 00:14:56,290
‫is pretty straight forward. It simply does what it says.

259
00:14:56,290 --> 00:14:59,990
‫So add field is used to add fields and actually it is

260
00:14:59,990 --> 00:15:01,980
‫called add fields.

261
00:15:01,980 --> 00:15:06,864
‫And so now, the name that we want to add or the field

262
00:15:06,864 --> 00:15:11,330
‫is called month and it has the value of

263
00:15:11,330 --> 00:15:13,463
‫the field with the name ID.

264
00:15:15,060 --> 00:15:17,670
‫All right. So, pretty straight forward

265
00:15:17,670 --> 00:15:20,300
‫simply the name of the field and then the value.

266
00:15:20,300 --> 00:15:24,670
‫Which as usual, we need to use the uh the dollar sign.

267
00:15:24,670 --> 00:15:27,870
‫All right, just to test it again.

268
00:15:27,870 --> 00:15:29,413
‫Indeed now we have the month.

269
00:15:30,500 --> 00:15:33,630
‫Then next up, let's actually get rid of this

270
00:15:33,630 --> 00:15:34,793
‫and so we use project.

271
00:15:38,860 --> 00:15:43,090
‫So I'm really trying to put as many stages in here as I can

272
00:15:43,090 --> 00:15:45,930
‫to-- to show you really everything I can.

273
00:15:45,930 --> 00:15:49,460
‫So how does project work? Well we simply give

274
00:15:49,460 --> 00:15:53,130
‫each of the field names a zero or a one.

275
00:15:53,130 --> 00:15:57,900
‫So let me show that to you. So we can say ID

276
00:15:57,900 --> 00:16:00,960
‫and set it to zero. And that will then make it so

277
00:16:00,960 --> 00:16:05,130
‫the ID no longer shows up. If I put a one here, well,

278
00:16:05,130 --> 00:16:08,160
‫then it would actually show up, okay?

279
00:16:08,160 --> 00:16:12,140
‫So this one I'm not gonna test. Let me just add the next one

280
00:16:12,140 --> 00:16:17,140
‫which is the sort one which I believe I used it before

281
00:16:17,440 --> 00:16:20,783
‫but still I want to sort it here by the number or tours.

282
00:16:21,640 --> 00:16:26,120
‫Okay, so right now it's not 100% useful we are still missing

283
00:16:26,120 --> 00:16:29,410
‫because we should actually sort it by uh, really by the

284
00:16:29,410 --> 00:16:30,820
‫number of tour starts.

285
00:16:30,820 --> 00:16:35,260
‫So the name of the field is number of tour starts

286
00:16:35,260 --> 00:16:39,290
‫and uh remember we had one before which was for ascending

287
00:16:39,290 --> 00:16:42,140
‫and minus one which was for descending and of course

288
00:16:42,140 --> 00:16:43,220
‫that's what we want.

289
00:16:43,220 --> 00:16:45,893
‫So starting with the highest number.

290
00:16:48,220 --> 00:16:53,220
‫So it should be three in our case and yeah, it is.

291
00:16:53,870 --> 00:16:57,720
‫So July is the busiest month with three tour starts

292
00:16:57,720 --> 00:17:01,440
‫the Forest Hiker, the Sea Explorer, and the Sports Lover.

293
00:17:01,440 --> 00:17:02,944
‫Okay, so this is kind of done.

294
00:17:02,944 --> 00:17:06,710
‫Let me just show you one, uh last stage here

295
00:17:06,710 --> 00:17:09,540
‫which is uh, not really helpful here

296
00:17:09,540 --> 00:17:11,560
‫but I wanted to show it to you anyway.

297
00:17:11,560 --> 00:17:15,210
‫So we have the limit, and this one is exactly the same

298
00:17:15,210 --> 00:17:19,110
‫as limit in uh query. So basically it is gonna allow us to

299
00:17:19,110 --> 00:17:21,880
‫only uh, have six documents here.

300
00:17:21,880 --> 00:17:23,763
‫Okay so basically six outputs.

301
00:17:25,160 --> 00:17:29,530
‫Okay so let's test that, and so now indeed

302
00:17:29,530 --> 00:17:30,650
‫we should only have six.

303
00:17:30,650 --> 00:17:35,160
‫One, two, three, four, five, and six. All right.

304
00:17:35,160 --> 00:17:39,150
‫Again, not really useful because that's uh gonna cutoff

305
00:17:39,150 --> 00:17:42,670
‫the six least biggest month, which we don't want.

306
00:17:42,670 --> 00:17:44,800
‫So let's simply set it to 12 here,

307
00:17:44,800 --> 00:17:49,010
‫just so we can leave it here as a reference for you.

308
00:17:49,010 --> 00:17:54,010
‫All right, so one more time but it, uh should be working now

309
00:17:54,470 --> 00:17:58,122
‫and the real business problem is now solved.

310
00:17:58,122 --> 00:18:01,400
‫And I know this is quite a lot of moving pieces

311
00:18:01,400 --> 00:18:04,150
‫that we have here. A lot of different stages.

312
00:18:04,150 --> 00:18:07,930
‫And so I know it's a lot for you to take in at this moment.

313
00:18:07,930 --> 00:18:10,670
‫But don't worry, you don't have to know all of this stuff

314
00:18:10,670 --> 00:18:12,170
‫all at the same time.

315
00:18:12,170 --> 00:18:14,970
‫With practice you will keep improving

316
00:18:14,970 --> 00:18:17,740
‫and you will know when to use which of the tools

317
00:18:17,740 --> 00:18:19,610
‫that you have at your disposal.

318
00:18:19,610 --> 00:18:22,220
‫Just keep in mind that you can always read the documentation

319
00:18:22,220 --> 00:18:25,840
‫which is kind of complete and really great learning material

320
00:18:25,840 --> 00:18:28,120
‫besides this course, okay?

321
00:18:28,120 --> 00:18:29,970
‫And that applies to all of the technologies

322
00:18:29,970 --> 00:18:31,140
‫that we're learning here.

323
00:18:31,140 --> 00:18:35,320
‫So I really encourage you to always study the documentation.

324
00:18:35,320 --> 00:18:39,220
‫And I know it can be really frightening to look at it

325
00:18:39,220 --> 00:18:42,390
‫and without this course it would be a lot more difficult

326
00:18:42,390 --> 00:18:44,240
‫to learn from the documentation

327
00:18:44,240 --> 00:18:46,270
‫but with this really good starting point

328
00:18:46,270 --> 00:18:49,200
‫that you get in these videos it's then a lot easier

329
00:18:49,200 --> 00:18:51,230
‫for you to keep learning more and more uh,

330
00:18:51,230 --> 00:18:54,220
‫using that documentation, okay?

331
00:18:54,220 --> 00:18:57,610
‫So I wouldn't expect you to solve this challenge

332
00:18:57,610 --> 00:19:01,180
‫on your own of course, which is why we basically

333
00:19:01,180 --> 00:19:03,170
‫did it together here, right?

334
00:19:03,170 --> 00:19:05,760
‫But I hope you had as much fun as I did

335
00:19:05,760 --> 00:19:10,030
‫because again, I really love to solve this kind of problems

336
00:19:10,030 --> 00:19:11,810
‫it's-- it's really fun I think.

337
00:19:11,810 --> 00:19:14,280
‫But anyway, enough talking now.

338
00:19:14,280 --> 00:19:16,880
‫In the rest of the section we will now talk about

339
00:19:16,880 --> 00:19:20,130
‫a couple of uh, other features we have available to us

340
00:19:20,130 --> 00:19:23,283
‫in Mongo, so that should be pretty fun as well.

