﻿1
00:00:01,300 --> 00:00:03,180
‫Instruktur: Ingat bagaimana kita

2
00:00:03,180 --> 00:00:06,500
‫memiliki bidang untuk peringkat rata-rata pada setiap dokumen tur?

3
00:00:06,500 --> 00:00:09,860
‫Nah sampai saat ini bidang itu tidak benar-benar

4
00:00:09,860 --> 00:00:12,110
‫menyimpan data yang berarti, bukan?

5
00:00:12,110 --> 00:00:14,290
‫Tapi sekarang mari kita ubah

6
00:00:14,290 --> 00:00:17,233
‫itu dan hitung nilai rata-rata dalam kuliah ini.

7
00:00:18,920 --> 00:00:22,410
‫Jadi menyimpan ringkasan kumpulan data terkait pada

8
00:00:22,410 --> 00:00:26,270
‫kumpulan data utama sebenarnya adalah teknik yang sangat populer

9
00:00:26,270 --> 00:00:29,900
‫dalam pemodelan data yang sebenarnya belum saya sebutkan.

10
00:00:29,900 --> 00:00:32,720
‫Dan teknik ini sebenarnya bisa sangat membantu

11
00:00:32,720 --> 00:00:34,750
‫untuk mencegah kueri

12
00:00:34,750 --> 00:00:36,890
‫konstan dari kumpulan data terkait.

13
00:00:36,890 --> 00:00:40,110
‫Jadi dalam aplikasi kami, contoh bagus dari teknik

14
00:00:40,110 --> 00:00:43,320
‫ini adalah menyimpan peringkat rata-rata dan jumlah peringkat

15
00:00:43,320 --> 00:00:46,870
‫pada setiap tur, sehingga kami tidak perlu menanyakan ulasan

16
00:00:46,870 --> 00:00:49,860
‫dan menghitung rata-rata itu setiap kali kami

17
00:00:49,860 --> 00:00:52,150
‫meminta semua tur, baik.

18
00:00:52,150 --> 00:00:54,380
‫Misalnya, itu bisa menjadi

19
00:00:54,380 --> 00:00:57,280
‫sangat berguna untuk halaman ikhtisar tur di

20
00:00:57,280 --> 00:01:00,320
‫front-end kami di mana kami benar-benar tidak ingin

21
00:01:00,320 --> 00:01:03,350
‫menampilkan semua ulasan, tetapi masih ingin menampilkan

22
00:01:03,350 --> 00:01:06,730
‫ringkasan ulasan ini, seperti misalnya, jumlah peringkat dan rata-rata.

23
00:01:06,730 --> 00:01:09,130
‫Dan sebenarnya kami sudah memiliki field untuk itu

24
00:01:09,130 --> 00:01:10,433
‫dalam skema tur kami.

25
00:01:11,450 --> 00:01:15,870
‫Jadi di sini di awal, saya pikir.

26
00:01:15,870 --> 00:01:17,660
‫Ya, jadi kami memiliki

27
00:01:17,660 --> 00:01:19,760
‫rata-rata peringkat dan kuantitas peringkat di

28
00:01:19,760 --> 00:01:22,380
‫sini, tetapi saat ini mereka hanya beberapa

29
00:01:22,380 --> 00:01:25,307
‫angka dan tentu saja, itu bukan rata-rata dan

30
00:01:25,307 --> 00:01:27,560
‫jumlah peringkat yang sebenarnya, karena kami

31
00:01:27,560 --> 00:01:30,840
‫tidak pernah benar-benar menghitungnya pada titik mana pun. aplikasi

32
00:01:30,840 --> 00:01:34,290
‫kita, tapi itulah yang akan kita ubah dalam video ini.

33
00:01:34,290 --> 00:01:37,370
‫Jadi sekarang kita akan menghitung rating rata-rata

34
00:01:37,370 --> 00:01:39,750
‫dan juga jumlah rating dari

35
00:01:39,750 --> 00:01:43,330
‫sebuah tur setiap kali sebuah ulasan baru ditambahkan

36
00:01:43,330 --> 00:01:47,000
‫ke tur itu atau juga ketika sebuah ulasan diperbarui

37
00:01:47,000 --> 00:01:49,230
‫atau dihapus, karena itulah

38
00:01:49,230 --> 00:01:52,830
‫situasi ketika jumlah atau rata-rata mungkin berubah, benar.

39
00:01:52,830 --> 00:01:55,920
‫Jadi bagaimana kita benar-benar akan menerapkan ini?

40
00:01:55,920 --> 00:01:58,800
‫Nah kembali di sini dalam model review

41
00:01:58,800 --> 00:02:00,620
‫kita akan membuat

42
00:02:00,620 --> 00:02:02,690
‫fungsi baru yang akan mengambil

43
00:02:02,690 --> 00:02:05,690
‫ID tur dan menghitung peringkat rata-rata dan jumlah

44
00:02:05,690 --> 00:02:09,410
‫peringkat yang ada di koleksi kami untuk tur yang tepat.

45
00:02:09,410 --> 00:02:11,880
‫Kemudian pada akhirnya fungsi bahkan akan

46
00:02:11,880 --> 00:02:14,020
‫memperbarui dokumen tur yang sesuai.

47
00:02:14,020 --> 00:02:16,360
‫Kemudian untuk menggunakan fungsi itu kita

48
00:02:16,360 --> 00:02:19,510
‫akan menggunakan middleware untuk memanggil fungsi ini pada

49
00:02:19,510 --> 00:02:22,650
‫dasarnya setiap kali ada ulasan baru atau

50
00:02:22,650 --> 00:02:24,980
‫diperbarui atau dihapus, oke.

51
00:02:24,980 --> 00:02:28,030
‫Jadi sekarang mari kita mulai dengan menulis fungsi

52
00:02:28,030 --> 00:02:31,370
‫itu dan untuk itu kita sebenarnya akan menulis metode

53
00:02:31,370 --> 00:02:34,510
‫statis pada skema kita, dan itu adalah fitur

54
00:02:34,510 --> 00:02:36,580
‫Mongoose yang belum kita gunakan.

55
00:02:36,580 --> 00:02:38,630
‫Jadi kami hanya menggunakan metode instan,

56
00:02:38,630 --> 00:02:40,500
‫yang dapat kami panggil pada

57
00:02:40,500 --> 00:02:42,050
‫dokumen dan juga

58
00:02:42,050 --> 00:02:46,090
‫sangat berguna, tetapi kali ini kami benar-benar akan menggunakan metode statis.

59
00:02:46,090 --> 00:02:46,923
‫Oke.

60
00:02:47,850 --> 00:02:51,330
‫Jadi sekali lagi, ini bisa disebut model secara langsung,

61
00:02:51,330 --> 00:02:59,520
‫misalnya seperti ulasan ini. calcStats, oke.

62
00:02:59,520 --> 00:03:04,350
‫Dan cara kerjanya tentu saja reviewSchema

63
00:03:04,350 --> 00:03:09,323
‫dan kemudian . statika dan kemudian nama fungsinya.

64
00:03:10,490 --> 00:03:11,540
‫Jadi calcAverageRatings

65
00:03:18,360 --> 00:03:22,143
‫sama dengan sebuah fungsi, yang mengingat mengambil ID tur,

66
00:03:24,800 --> 00:03:27,180
‫dan ID itu tentu saja untuk

67
00:03:27,180 --> 00:03:29,670
‫tur tempat ulasan saat ini berada.

68
00:03:29,670 --> 00:03:32,790
‫Dan saya tahu bahwa pada titik ini mungkin

69
00:03:32,790 --> 00:03:35,000
‫kedengarannya agak membingungkan, tetapi jangan khawatir

70
00:03:35,000 --> 00:03:36,720
‫setelah kita menerapkan semua

71
00:03:36,720 --> 00:03:38,380
‫ini dan juga

72
00:03:38,380 --> 00:03:42,080
‫saat kita mengujinya, praktiknya akan sangat masuk akal, oke?

73
00:03:42,080 --> 00:03:45,120
‫Pokoknya untuk sekarang benar-benar melakukan perhitungan

74
00:03:45,120 --> 00:03:48,470
‫kita akan kembali menggunakan pipa agregasi, kan.

75
00:03:48,470 --> 00:03:53,470
‫Jadi mari kita ingat bahwa di pengontrol alat kita, jadi di

76
00:03:53,970 --> 00:03:56,990
‫sini kita menggunakan pipa agregasi

77
00:03:56,990 --> 00:04:00,730
‫untuk juga membuat beberapa statistik seperti ini, oke.

78
00:04:00,730 --> 00:04:04,560
‫Jadi kami menggunakan metode agregat, yang kami panggil

79
00:04:04,560 --> 00:04:06,670
‫langsung pada model, oke.

80
00:04:06,670 --> 00:04:09,080
‫Jadi sekarang dalam metode contoh kami, kami sebenarnya dapat melakukan

81
00:04:09,080 --> 00:04:10,393
‫hal yang sama persis.

82
00:04:12,140 --> 00:04:15,690
‫Jadi dalam metode statis seperti ini, kata kunci ini

83
00:04:15,690 --> 00:04:18,130
‫sebenarnya menunjuk ke model saat ini.

84
00:04:18,130 --> 00:04:20,623
‫Jadi itu sebabnya kita bisa menggunakan ini. agregat, karena ingat

85
00:04:22,160 --> 00:04:25,100
‫kita perlu memanggil ini. agregat pada

86
00:04:25,100 --> 00:04:27,470
‫model secara langsung, dan itulah

87
00:04:27,470 --> 00:04:30,970
‫mengapa kami menggunakan metode statis di sini.

88
00:04:30,970 --> 00:04:33,690
‫Karena sekali lagi ini sekarang menunjuk

89
00:04:33,690 --> 00:04:38,200
‫ke model dan kita perlu memanggil agregat selalu pada model, oke.

90
00:04:38,200 --> 00:04:41,610
‫Jadi ke agregat kita harus melewati

91
00:04:41,610 --> 00:04:45,850
‫array semua tahapan yang kita inginkan secara agregat, oke.

92
00:04:45,850 --> 00:04:47,930
‫Jadi apa yang ingin kita lakukan pertama kali?

93
00:04:47,930 --> 00:04:51,930
‫Langkah pertama yang harus dilakukan adalah memilih semua

94
00:04:51,930 --> 00:04:54,280
‫ulasan yang benar-benar milik

95
00:04:54,280 --> 00:04:57,470
‫tur saat ini yang disahkan sebagai argumen.

96
00:04:57,470 --> 00:04:58,790
‫Oke.

97
00:04:58,790 --> 00:05:02,093
‫Jadi tahap pertama kami adalah tahap pertandingan, ingat itu, dan

98
00:05:03,090 --> 00:05:03,933
‫di

99
00:05:05,360 --> 00:05:07,580
‫sini kami melewati objek filter kami

100
00:05:08,620 --> 00:05:11,420
‫dan kami dapat mengatakan tur sama dengan tur,

101
00:05:11,420 --> 00:05:13,740
‫tetapi kami tidak benar-benar membutuhkannya, seperti

102
00:05:13,740 --> 00:05:17,950
‫yang sudah Anda ketahui, jadi mari kita hapus ini bagian, atau sebenarnya

103
00:05:17,950 --> 00:05:20,670
‫hanya untuk membuatnya sedikit kurang membingungkan di sini

104
00:05:20,670 --> 00:05:24,290
‫dengan nama sebut saja yang ini di sini ID tur, oke.

105
00:05:24,290 --> 00:05:26,620
‫Jadi tourId di sini,

106
00:05:26,620 --> 00:05:27,480
‫oke.

107
00:05:27,480 --> 00:05:29,510
‫Jadi seperti ini kami

108
00:05:29,510 --> 00:05:33,330
‫hanya memilih tur yang benar-benar ingin kami perbarui, oke.

109
00:05:33,330 --> 00:05:35,740
‫Sekarang di tahap selanjutnya mari

110
00:05:35,740 --> 00:05:37,930
‫kita hitung statistiknya sendiri,

111
00:05:37,930 --> 00:05:41,033
‫dan untuk itu kita menggunakan babak grup.

112
00:05:42,920 --> 00:05:44,900
‫Dan di fase grup ingat

113
00:05:44,900 --> 00:05:49,900
‫bidang pertama yang perlu kita tentukan adalah ID, jadi _id dan kemudian bidang

114
00:05:50,240 --> 00:05:51,740
‫umum yang semua dokumen

115
00:05:51,740 --> 00:05:53,570
‫memiliki kesamaan yang ingin

116
00:05:53,570 --> 00:05:56,200
‫kita kelompokkan dan jadi itu lagi akan

117
00:05:56,200 --> 00:05:57,543
‫menjadi tur.

118
00:06:00,230 --> 00:06:04,460
‫Jadi seperti pada contoh perhitungan statistik kami sebelumnya di

119
00:06:04,460 --> 00:06:07,310
‫sini kami mengelompokkan berdasarkan tingkat kesulitannya.

120
00:06:07,310 --> 00:06:10,250
‫Jadi seperti ini kami menghitung statistik untuk mudah

121
00:06:10,250 --> 00:06:11,840
‫dan statistik untuk menengah

122
00:06:11,840 --> 00:06:14,560
‫dan kemudian statistik untuk tur yang sulit.

123
00:06:14,560 --> 00:06:17,140
‫Jadi dalam contoh ini, kami mengelompokkan semua

124
00:06:17,140 --> 00:06:18,453
‫tur berdasarkan tingkat kesulitannya,

125
00:06:19,450 --> 00:06:20,283
‫oke.

126
00:06:20,283 --> 00:06:22,810
‫Tapi di sini, tentu saja kami mengelompokkan semua tur menjadi

127
00:06:22,810 --> 00:06:23,663
‫satu dengan tur.

128
00:06:25,440 --> 00:06:26,273
‫Besar.

129
00:06:26,273 --> 00:06:28,023
‫Sekarang jumlah rating, ingat

130
00:06:31,290 --> 00:06:32,653
‫bagaimana kita melakukannya,

131
00:06:33,690 --> 00:06:35,970
‫jadi yang kita lakukan pada dasarnya adalah

132
00:06:35,970 --> 00:06:37,970
‫menambahkan satu untuk setiap tur yang

133
00:06:37,970 --> 00:06:41,570
‫kita miliki, jadi setiap tur yang dicocokkan pada langkah sebelumnya, oke.

134
00:06:41,570 --> 00:06:44,810
‫Jadi jika ada lima dokumen tinjauan untuk tur

135
00:06:44,810 --> 00:06:48,310
‫saat ini maka untuk masing-masing dokumen ini akan ditambahkan satu.

136
00:06:48,310 --> 00:06:51,310
‫Jadi pada akhirnya jumlah peringkat akan menjadi

137
00:06:51,310 --> 00:06:55,130
‫lima, dan lagi, karena tentu saja kami memiliki lima dokumen tinjauan.

138
00:06:55,130 --> 00:06:57,083
‫Jadi masuk akal, kan?

139
00:06:58,532 --> 00:07:03,532
‫Kemudian juga rata-rata rating, yang sama seperti sebelumnya kita menggunakan

140
00:07:03,970 --> 00:07:08,970
‫operator rata-rata dan ini harus berada di dalam sebuah

141
00:07:09,180 --> 00:07:10,013
‫objek

142
00:07:12,490 --> 00:07:14,440
‫dan di sini

143
00:07:15,470 --> 00:07:18,330
‫nama field yang merupakan rating, kan.

144
00:07:18,330 --> 00:07:22,180
‫Jadi ingat bagaimana setiap ulasan memiliki bidang peringkat.

145
00:07:22,180 --> 00:07:24,993
‫Jadi dari situlah kita ingin menghitung rata-ratanya.

146
00:07:27,720 --> 00:07:30,350
‫Oke, dan itu sebenarnya.

147
00:07:30,350 --> 00:07:32,950
‫Jadi jumlah dan rata-rata peringkat

148
00:07:32,950 --> 00:07:36,790
‫persis seperti yang ingin kami hitung dalam agregasi ini.

149
00:07:36,790 --> 00:07:39,740
‫Sekarang perlu diingat bahwa ini sebenarnya mengembalikan janji

150
00:07:39,740 --> 00:07:43,290
‫dan jadi kita perlu menunggu itu dan kemudian menyimpannya

151
00:07:43,290 --> 00:07:46,193
‫ke dalam variabel yang disebut stats.

152
00:07:49,070 --> 00:07:49,980
‫Oke.

153
00:07:49,980 --> 00:07:53,023
‫Kemudian tandai yang ini di sini sebagai

154
00:07:54,600 --> 00:07:55,620
‫async juga,

155
00:07:55,620 --> 00:07:59,790
‫simpan dan sekarang kita benar-benar perlu menggunakan variabel stats itu.

156
00:07:59,790 --> 00:08:02,930
‫Untuk saat ini yang benar-benar ingin saya lakukan hanya

157
00:08:02,930 --> 00:08:06,073
‫untuk menguji ini adalah dengan benar-benar mencatat statistik ke konsol.

158
00:08:08,120 --> 00:08:09,090
‫Menghibur.

159
00:08:10,600 --> 00:08:11,433
‫statistik log.

160
00:08:13,640 --> 00:08:16,880
‫Oke, kemudian di langkah selanjutnya kita akan benar-benar ingin, seperti

161
00:08:16,880 --> 00:08:19,950
‫yang saya sebutkan sebelumnya lalu perbarui dokumen tur dengan

162
00:08:19,950 --> 00:08:21,770
‫statistik ini, tapi saya akan

163
00:08:21,770 --> 00:08:23,930
‫meninggalkannya sebentar lagi, karena untuk saat

164
00:08:23,930 --> 00:08:26,070
‫ini kita sebenarnya perlu memanggil metode

165
00:08:26,070 --> 00:08:28,390
‫ini di suatu tempat , karena jika

166
00:08:28,390 --> 00:08:31,133
‫tidak, statistik di sini tidak akan pernah dipanggil.

167
00:08:32,100 --> 00:08:33,863
‫Dan ingat bagaimana kami mengatakan

168
00:08:33,863 --> 00:08:36,160
‫di awal bahwa kami akan melakukan ini

169
00:08:36,160 --> 00:08:38,523
‫menggunakan middleware setiap kali ulasan baru dibuat.

170
00:08:40,050 --> 00:08:44,250
‫Jadi mari kita terapkan itu menggunakan reviewSchema pra simpan

171
00:08:45,330 --> 00:08:46,163
‫dan

172
00:08:50,680 --> 00:08:54,563
‫kemudian hanya fungsi middleware biasa kita di sini.

173
00:08:55,860 --> 00:08:57,873
‫Dan ingat bahwa dalam

174
00:08:57,873 --> 00:09:00,093
‫jenis middleware ini kata kunci ini

175
00:09:00,093 --> 00:09:02,210
‫menunjuk ke dokumen yang sedang disimpan.

176
00:09:02,210 --> 00:09:04,760
‫Jadi ini menunjuk ke ulasan

177
00:09:06,540 --> 00:09:08,850
‫saat ini, oke.

178
00:09:08,850 --> 00:09:11,880
‫Jadi kita ingin memanggil fungsi calcAverageRating

179
00:09:11,880 --> 00:09:15,020
‫menggunakan ini. tur, benar.

180
00:09:15,020 --> 00:09:18,770
‫Sekarang bagaimana kita sebenarnya akan memanggil fungsi ini?

181
00:09:18,770 --> 00:09:19,940
‫Ingat bagaimana saya

182
00:09:19,940 --> 00:09:22,470
‫mengatakan bahwa fungsi ini tersedia pada model.

183
00:09:22,470 --> 00:09:25,050
‫Jadi pada dasarnya seperti ini

184
00:09:25,050 --> 00:09:27,390
‫menempatkan review. calcAverageRatings dan seperti yang

185
00:09:29,557 --> 00:09:35,173
‫saya katakan, kami ingin menggunakan ini. tur, oke.

186
00:09:35,173 --> 00:09:37,240
‫Dan lagi, karena ini adalah ulasan

187
00:09:37,240 --> 00:09:40,340
‫saat ini dan ini adalah ID tur yang akan

188
00:09:40,340 --> 00:09:42,143
‫kami berikan di dalam calcAverageRatings.

189
00:09:43,640 --> 00:09:46,950
‫Sekarang masalahnya adalah bahwa pada titik ini di

190
00:09:46,950 --> 00:09:50,200
‫sini dalam kode variabel review belum didefinisikan.

191
00:09:50,200 --> 00:09:53,340
‫Sekarang Anda mungkin berpikir bahwa solusi sederhananya adalah

192
00:09:53,340 --> 00:09:57,780
‫dengan memindahkan kode ini ke sini setelah deklarasi tinjauan ini, tetapi

193
00:09:57,780 --> 00:10:00,480
‫sayangnya itu tidak akan berhasil, karena

194
00:10:00,480 --> 00:10:03,630
‫seperti di Express kode ini pada dasarnya berjalan

195
00:10:03,630 --> 00:10:05,730
‫dalam urutan yang dideklarasikan.

196
00:10:05,730 --> 00:10:08,100
‫Jadi jika kita meletakkan kode ini

197
00:10:08,100 --> 00:10:11,550
‫di sini setelah deklarasi review maka reviewSchema ini

198
00:10:11,550 --> 00:10:13,810
‫di sini tidak akan berisi

199
00:10:13,810 --> 00:10:16,050
‫middleware ini, karena kita hanya

200
00:10:16,050 --> 00:10:19,750
‫akan mendeklarasikannya setelah model review sudah dibuat, oke, tapi

201
00:10:19,750 --> 00:10:23,160
‫untungnya masih ada jalan keluarnya. dan itu untuk

202
00:10:23,160 --> 00:10:26,273
‫menggunakan ini. konstruktor.

203
00:10:28,970 --> 00:10:31,640
‫Jadi ini di sini masih menunjuk ke model.

204
00:10:31,640 --> 00:10:35,267
‫Anda tahu, pada dasarnya sekali lagi ini adalah dokumen

205
00:10:35,267 --> 00:10:38,030
‫saat ini dan konstruktor pada dasarnya adalah

206
00:10:38,030 --> 00:10:40,470
‫model yang membuat dokumen itu.

207
00:10:40,470 --> 00:10:42,410
‫Jadi ini di sini adalah

208
00:10:42,410 --> 00:10:45,823
‫singkatan dari tur dan jadi kita bisa melakukannya seperti ini.

209
00:10:47,420 --> 00:10:52,043
‫Kemudian panggil berikutnya seperti biasa dan hanya itu.

210
00:10:54,130 --> 00:10:57,320
‫Jadi sekarang mari kita pergi ke depan dan menguji ini.

211
00:10:57,320 --> 00:11:00,500
‫Dan untuk melakukan itu saya akan membuat tur baru terlebih

212
00:11:00,500 --> 00:11:02,670
‫dahulu, karena tur lain yang sudah kami

213
00:11:02,670 --> 00:11:04,620
‫miliki memiliki rata-rata dan jumlah

214
00:11:04,620 --> 00:11:06,730
‫peringkat yang sudah dihitung dan jadi

215
00:11:06,730 --> 00:11:10,240
‫kami benar-benar ingin memulai dari awal di sini saat menguji ini.

216
00:11:10,240 --> 00:11:13,270
‫Jadi untuk membuat tur baru kita perlu login sebagai

217
00:11:13,270 --> 00:11:16,840
‫administrator, dan saya pikir kita saat ini, tapi hanya untuk memastikan

218
00:11:16,840 --> 00:11:18,940
‫mari kita lakukan itu lagi.

219
00:11:20,400 --> 00:11:21,233
‫Oke.

220
00:11:22,660 --> 00:11:24,981
‫Jadi ini adalah tur uji baru.

221
00:11:24,981 --> 00:11:28,313
‫Baiklah mari kita hapus ini di sini, mereka tidak wajib, dan

222
00:11:30,120 --> 00:11:32,663
‫saya pikir dengan ini kita baik-baik saja.

223
00:11:36,950 --> 00:11:40,580
‫Baiklah, dan di sini Anda melihat default yang kami

224
00:11:40,580 --> 00:11:43,130
‫atur sebelumnya sehingga peringkat rata-rata

225
00:11:43,130 --> 00:11:46,430
‫untuk lima dan kuantitas disetel ke nol, oke.

226
00:11:46,430 --> 00:11:49,630
‫Sekarang untuk membuat ulasan baru, kita sebenarnya

227
00:11:49,630 --> 00:11:52,560
‫harus masuk sebagai pengguna biasa, jadi

228
00:11:52,560 --> 00:11:54,033
‫bukan administrator.

229
00:11:54,900 --> 00:11:58,900
‫Jadi mari kita dapatkan pengguna normal, katakanlah.

230
00:11:58,900 --> 00:12:02,120
‫Jadi mari kita gunakan Laura ini di sini.

231
00:12:02,120 --> 00:12:03,470
‫Jadi Laura@contoh. com

232
00:12:04,804 --> 00:12:08,063
‫dan seperti yang saya sebutkan sebelumnya, kata sandinya selalu sama.

233
00:12:12,000 --> 00:12:16,773
‫Jadi mari kita lakukan itu dan sekarang kita akan membuat ulasan baru tentang tur.

234
00:12:17,920 --> 00:12:21,103
‫Jadi sekarang mari kita dapatkan tur yang kita

235
00:12:22,890 --> 00:12:26,653
‫buat tadi, jadi ID ini dan taruh di sini di URL.

236
00:12:27,880 --> 00:12:30,490
‫Oke, jadi ingat bahwa rute ini

237
00:12:30,490 --> 00:12:33,877
‫sekarang secara otomatis mendapatkan ID tur dari URL

238
00:12:33,877 --> 00:12:37,413
‫dan ID pengguna dari pengguna yang saat ini masuk,

239
00:12:38,730 --> 00:12:39,563
‫oke.

240
00:12:39,563 --> 00:12:42,063
‫Jadi mari kita gunakan yang ini sebagai

241
00:12:44,490 --> 00:12:48,643
‫peringkat pertama, mari kita kirimkan, dan sekarang saya ingin melihat konsol kita.

242
00:12:50,060 --> 00:12:53,230
‫Kami memiliki output di sini, tetapi untuk beberapa alasan itu

243
00:12:53,230 --> 00:12:55,260
‫hanya seperti array kosong ini.

244
00:12:55,260 --> 00:12:58,010
‫Jadi pasti ada sesuatu yang tidak berfungsi di sini.

245
00:12:58,010 --> 00:13:02,400
‫Jadi mari kita lihat ID tur di sini hanya untuk memastikan

246
00:13:02,400 --> 00:13:07,200
‫bahwa kita mendapatkan nilai yang benar di sini, ID dan mari juga

247
00:13:07,200 --> 00:13:09,340
‫mengomentari bagian ini di

248
00:13:10,210 --> 00:13:14,220
‫sini hanya untuk melihat apakah mungkin ada kesalahan di bagian

249
00:13:14,220 --> 00:13:17,360
‫ini, jadi sekarang mari kita coba itu lagi.

250
00:13:17,360 --> 00:13:20,113
‫Saya hanya akan menambahkan yang sama di sini lagi, oke.

251
00:13:23,680 --> 00:13:26,453
‫Oke, jadi sekarang kita benar-benar mendapatkan sesuatu.

252
00:13:27,310 --> 00:13:29,790
‫Jadi kami memiliki satu ulasan ini yang merupakan

253
00:13:29,790 --> 00:13:32,210
‫ulasan yang kami buat pada awalnya.

254
00:13:32,210 --> 00:13:34,900
‫Jadi itu dimulai dengan ac15

255
00:13:34,900 --> 00:13:39,623
‫ini, tapi yang baru saja saya buat adalah 66d ini, oke.

256
00:13:39,623 --> 00:13:44,223
‫Jadi mari kita lihat itu di sini di Kompas.

257
00:13:45,490 --> 00:13:47,223
‫Jadi kita harus pergi ke halaman terakhir.

258
00:13:49,380 --> 00:13:52,450
‫Oke, jadi yang muncul di konsol kita hanya yang

259
00:13:52,450 --> 00:13:55,270
‫ini di sini, tapi bukan yang kedua

260
00:13:55,270 --> 00:13:57,730
‫yang baru saja kita buat, oke.

261
00:13:57,730 --> 00:13:59,670
‫Jadi jika sekarang kita membuat yang

262
00:13:59,670 --> 00:14:02,980
‫ketiga maka kita mungkin harus melihat yang pertama dan yang kedua.

263
00:14:02,980 --> 00:14:03,880
‫Jadi mari kita coba itu.

264
00:14:12,060 --> 00:14:13,160
‫Oke.

265
00:14:13,160 --> 00:14:16,290
‫Kirim yang ini dan sekarang di sini di

266
00:14:18,060 --> 00:14:20,830
‫output kami, saya benar-benar mendapatkan ketiganya.

267
00:14:20,830 --> 00:14:23,793
‫Jadi itu tidak masuk akal, tapi bagaimanapun juga

268
00:14:24,800 --> 00:14:27,443
‫poin yang ingin saya sampaikan di

269
00:14:27,443 --> 00:14:29,700
‫sini adalah kita tidak boleh

270
00:14:29,700 --> 00:14:33,560
‫menggunakan pre, tetapi kita harus menggunakan post save middleware, oke.

271
00:14:33,560 --> 00:14:35,520
‫Dan itu karena di pra

272
00:14:35,520 --> 00:14:37,350
‫simpan, ulasan saat ini

273
00:14:37,350 --> 00:14:39,270
‫belum benar-benar ada dalam koleksi.

274
00:14:39,270 --> 00:14:42,420
‫Jadi oleh karena itu, ketika kita kemudian melakukan pencocokan

275
00:14:42,420 --> 00:14:45,170
‫ini di sini seharusnya tidak dapat muncul di

276
00:14:45,170 --> 00:14:47,150
‫output di sini, karena sekali

277
00:14:47,150 --> 00:14:51,000
‫lagi pada saat ini belum benar-benar disimpan ke dalam koleksi, oke.

278
00:14:51,000 --> 00:14:52,760
‫Jadi yang terbaik adalah menggunakan

279
00:14:52,760 --> 00:14:54,770
‫posting di sini, karena pada saat

280
00:14:54,770 --> 00:14:57,820
‫itu, tentu saja, semua dokumen sudah disimpan dalam database

281
00:14:57,820 --> 00:14:59,330
‫dan saat itulah saat

282
00:14:59,330 --> 00:15:02,430
‫yang tepat untuk benar-benar melakukan perhitungan ini dengan semua ulasan

283
00:15:02,430 --> 00:15:04,723
‫dan kemudian menyimpan hasilnya di tur .

284
00:15:05,940 --> 00:15:07,750
‫Oke, jadi saya tidak

285
00:15:07,750 --> 00:15:10,403
‫begitu yakin mengapa yang satu ini benar-benar muncul

286
00:15:11,670 --> 00:15:15,603
‫pada saat ini, tapi mari kita coba sekarang dengan yang lain.

287
00:15:19,290 --> 00:15:21,280
‫Jadi itulah yang keempat, dan

288
00:15:21,280 --> 00:15:25,450
‫sekarang kita mendapatkan berikutnya bukan fungsi dan memang seperti yang saya

289
00:15:25,450 --> 00:15:27,930
‫sebutkan sebelumnya bahwa middleware posting tidak

290
00:15:27,930 --> 00:15:30,250
‫mendapatkan akses ke berikutnya dan oleh

291
00:15:30,250 --> 00:15:33,940
‫karena itu, kami tentu saja tidak dapat menyebutnya, tidak dapat

292
00:15:33,940 --> 00:15:34,833
‫menggunakannya.

293
00:15:37,070 --> 00:15:40,793
‫Baiklah, dan jadi di sini kita memiliki peringkat berikutnya,

294
00:15:42,160 --> 00:15:42,993
‫oke.

295
00:15:42,993 --> 00:15:45,913
‫Jadi sekarang muncul di sini juga.

296
00:15:48,090 --> 00:15:50,840
‫Jadi kami tidak membutuhkan itu dan sekarang kami dapat dengan

297
00:15:50,840 --> 00:15:53,053
‫aman mencoba menghitung statistik kami di sini.

298
00:15:54,140 --> 00:15:56,600
‫Cobalah, dan mari kita hapus

299
00:15:56,600 --> 00:15:59,000
‫semua ulasan ini.

300
00:15:59,000 --> 00:16:03,623
‫Jadi pada dasarnya saya ingin memulai dari awal, oke.

301
00:16:04,880 --> 00:16:05,800
‫Jadi

302
00:16:08,320 --> 00:16:11,190
‫kelima ulasan di sini harus pergi dan

303
00:16:16,300 --> 00:16:18,450
‫sekarang kami siap untuk pergi.

304
00:16:18,450 --> 00:16:21,030
‫Jadi mari kita buat yang ini sebagai

305
00:16:22,860 --> 00:16:26,400
‫yang pertama dan sekarang mari kita lihat statistik kita dan

306
00:16:26,400 --> 00:16:27,600
‫ini dia.

307
00:16:27,600 --> 00:16:29,530
‫Jadi ini adalah ID tur

308
00:16:29,530 --> 00:16:31,670
‫saat ini maka jumlah peringkat adalah

309
00:16:31,670 --> 00:16:33,703
‫satu dan rata-rata tentu saja tiga.

310
00:16:35,510 --> 00:16:39,240
‫Jadi jika kita menambahkan satu lagi dengan peringkat lima baik

311
00:16:40,920 --> 00:16:43,310
‫maka rata-rata harus empat dan kami

312
00:16:43,310 --> 00:16:46,010
‫harus memiliki jumlah peringkat sama dengan dua.

313
00:16:47,840 --> 00:16:52,460
‫Jadi mari kita coba itu dan memang seperti yang saya

314
00:16:52,460 --> 00:16:55,480
‫katakan dua peringkat, rata-rata empat.

315
00:16:55,480 --> 00:16:59,010
‫Dan hanya satu lagi hanya untuk memastikan, mari tambahkan

316
00:16:59,010 --> 00:17:00,610
‫satu lagi dengan

317
00:17:05,600 --> 00:17:07,240
‫lima, dan ini dia.

318
00:17:07,240 --> 00:17:08,073
‫Besar.

319
00:17:08,073 --> 00:17:10,990
‫Jadi kami sekarang menghitung statistik dengan benar, tetapi

320
00:17:10,990 --> 00:17:13,090
‫tentu saja statistik tersebut belum

321
00:17:13,090 --> 00:17:15,290
‫disimpan ke dokumen tur saat ini.

322
00:17:15,290 --> 00:17:18,630
‫Jadi jika kita datang ke sini di Kompas untuk tur yang

323
00:17:18,630 --> 00:17:20,293
‫baru saja kita buat,

324
00:17:22,330 --> 00:17:24,340
‫mungkin itu yang terakhir di sini.

325
00:17:24,340 --> 00:17:27,790
‫Yap, jadi tur pengujian kami, masih memiliki nilai

326
00:17:27,790 --> 00:17:30,470
‫default 4 ini. 5 dan nol,

327
00:17:30,470 --> 00:17:31,350
‫oke.

328
00:17:31,350 --> 00:17:33,260
‫Jadi sekarang saatnya untuk benar-benar

329
00:17:33,260 --> 00:17:36,573
‫mempertahankan statistik yang dihitung ke dalam dokumen tur

330
00:17:38,250 --> 00:17:39,480
‫ini, oke.

331
00:17:39,480 --> 00:17:41,670
‫Jadi mari kita lakukan itu.

332
00:17:41,670 --> 00:17:44,420
‫Pertama-tama, untuk bisa melakukan

333
00:17:44,420 --> 00:17:47,863
‫itu kita perlu model tur, kan.

334
00:17:48,810 --> 00:17:49,643
‫Jadi tur

335
00:17:51,620 --> 00:17:52,453
‫membutuhkan dan

336
00:17:55,250 --> 00:17:56,483
‫di sana kita pergi.

337
00:18:03,860 --> 00:18:07,010
‫Jadi yang perlu kita lakukan pada dasarnya adalah

338
00:18:07,010 --> 00:18:10,160
‫menemukan tur saat ini dan kemudian memperbaruinya.

339
00:18:10,160 --> 00:18:13,873
‫Jadi kami melakukannya berkali-kali, findById

340
00:18:14,830 --> 00:18:17,813
‫dan perbarui, oke.

341
00:18:17,813 --> 00:18:21,370
‫Dan ID tersebut tentu saja adalah tour ID yang

342
00:18:21,370 --> 00:18:23,670
‫dilewatkan ke dalam fungsi dan

343
00:18:23,670 --> 00:18:27,140
‫kemudian menjadi objek data yang sebenarnya ingin kita perbarui.

344
00:18:27,140 --> 00:18:30,470
‫Jadi mari kita dapatkan nama bidang ini dari sini.

345
00:18:30,470 --> 00:18:32,500
‫Jadi kami memiliki peringkatQuantity di

346
00:18:34,970 --> 00:18:36,230
‫satu sisi.

347
00:18:36,230 --> 00:18:39,260
‫Mari kita taruh di sini menjadi satu untuk saat

348
00:18:39,260 --> 00:18:41,240
‫ini agar kita tidak mendapatkan

349
00:18:41,240 --> 00:18:42,893
‫kesalahan dan peringkat Rata-rata.

350
00:18:46,910 --> 00:18:48,940
‫Sekali lagi, untuk mencegah kesalahan,

351
00:18:48,940 --> 00:18:50,650
‫karena sekarang saya ingin

352
00:18:50,650 --> 00:18:53,400
‫datang ke sini dan melihat statistik ini.

353
00:18:53,400 --> 00:18:57,700
‫Jadi Anda lihat sebenarnya mereka disimpan dalam array, oke.

354
00:18:57,700 --> 00:19:00,870
‫Jadi kita perlu pergi ke posisi pertama dari array itu, di

355
00:19:00,870 --> 00:19:02,433
‫mana objek ini berada.

356
00:19:04,520 --> 00:19:07,060
‫Jadi statistik di posisi nol

357
00:19:07,970 --> 00:19:12,820
‫dan kemudian dari sana kita mendapatkan properti peringkat akhir,

358
00:19:12,820 --> 00:19:13,653
‫oke.

359
00:19:13,653 --> 00:19:14,593
‫Jadi yang ini di sini.

360
00:19:18,440 --> 00:19:21,283
‫Dan tentu saja sama untuk peringkat rata-rata.

361
00:19:23,870 --> 00:19:24,800
‫Oke.

362
00:19:24,800 --> 00:19:27,070
‫Dan sekarang kita juga perlu menunggunya.

363
00:19:27,070 --> 00:19:31,640
‫Jadi seperti biasa ini mengembalikan premis dan kita bisa menunggunya.

364
00:19:31,640 --> 00:19:34,750
‫Sekarang kita juga bisa menyimpan hasil ini ke sebuah variabel,

365
00:19:34,750 --> 00:19:37,250
‫tapi kita tidak benar-benar membutuhkan tur sama sekali.

366
00:19:37,250 --> 00:19:39,530
‫Yang ingin kami lakukan hanyalah memperbaruinya,

367
00:19:39,530 --> 00:19:40,880
‫jadi kami tidak

368
00:19:40,880 --> 00:19:43,700
‫menyimpan nilai hasil premis di mana pun.

369
00:19:43,700 --> 00:19:44,960
‫Oke.

370
00:19:44,960 --> 00:19:49,960
‫Jadi mari kita coba menambahkan ulasan lain di sini, kali

371
00:19:50,050 --> 00:19:53,373
‫ini dengan satu yang mengerikan.

372
00:19:55,800 --> 00:19:56,810
‫Oke.

373
00:19:56,810 --> 00:20:00,650
‫Dan pertama-tama, mari kita lihat statistiknya.

374
00:20:00,650 --> 00:20:03,300
‫Jadi tentu saja kita mendapat rating empat, jadi jumlah

375
00:20:03,300 --> 00:20:06,203
‫ratingnya, dan rata-ratanya 3. 5.

376
00:20:07,270 --> 00:20:10,090
‫Jadi sekarang untuk benar-benar melihat apakah itu

377
00:20:10,090 --> 00:20:13,290
‫berhasil mari kita periksa Kompas atau kita juga bisa

378
00:20:13,290 --> 00:20:15,223
‫menggunakan atau mendapatkan titik akhir

379
00:20:16,270 --> 00:20:17,320
‫tur, oke.

380
00:20:17,320 --> 00:20:20,593
‫Jadi kita butuh tour ID, yang bisa

381
00:20:23,550 --> 00:20:27,160
‫kita copy dari sini, paste di sini, dan

382
00:20:27,160 --> 00:20:30,060
‫sekarang tiba saatnya dan memang berhasil,

383
00:20:30,060 --> 00:20:31,110
‫sempurna.

384
00:20:31,110 --> 00:20:34,940
‫Jadi itu luar biasa, benar-benar fantastis.

385
00:20:34,940 --> 00:20:37,810
‫Sekali lagi hanya untuk bersenang-senang mari tambahkan

386
00:20:37,810 --> 00:20:39,893
‫ulasan lain di sini.

387
00:20:44,330 --> 00:20:45,163
‫Oke.

388
00:20:45,163 --> 00:20:48,480
‫Perbarui yang ini, jadi sekarang kami mendapatkan

389
00:20:48,480 --> 00:20:51,760
‫lima dan rata-rata kami naik sedikit.

390
00:20:51,760 --> 00:20:52,593
‫Besar.

391
00:20:52,593 --> 00:20:56,570
‫Jadi sekarang mari kita luangkan waktu sejenak dan rekap apa yang kita lakukan di sini.

392
00:20:56,570 --> 00:20:59,690
‫Jadi kami mulai dengan membuat metode statis.

393
00:20:59,690 --> 00:21:01,770
‫Jadi seluruh fungsi

394
00:21:01,770 --> 00:21:04,870
‫di sini pada dasarnya membuat

395
00:21:04,870 --> 00:21:07,980
‫statistik rata-rata dan jumlah peringkat untuk

396
00:21:07,980 --> 00:21:12,230
‫ID tur yang ulasan saat ini dibuat, oke.

397
00:21:12,230 --> 00:21:14,870
‫Dan kami membuat fungsi ini sebagai

398
00:21:14,870 --> 00:21:18,030
‫metode statis, karena kami perlu memanggil fungsi agregat

399
00:21:18,030 --> 00:21:19,310
‫pada model.

400
00:21:19,310 --> 00:21:22,080
‫Jadi dalam metode statis ke variabel ini memanggil

401
00:21:22,080 --> 00:21:23,910
‫persis ke suatu metode.

402
00:21:23,910 --> 00:21:26,670
‫Jadi itu sangat berguna dalam kasus ini.

403
00:21:26,670 --> 00:21:29,930
‫Jadi kami membangun saluran agregasi kami di sini di

404
00:21:29,930 --> 00:21:32,590
‫mana kami memilih semua ulasan yang cocok

405
00:21:32,590 --> 00:21:35,880
‫dengan ID tur saat ini, dan kemudian mereka dihitung,

406
00:21:35,880 --> 00:21:38,470
‫statistik untuk semua ulasan ini.

407
00:21:38,470 --> 00:21:40,520
‫Kemudian setelah itu

408
00:21:40,520 --> 00:21:45,470
‫selesai kami menyimpan statistik ke tur saat ini, oke.

409
00:21:45,470 --> 00:21:47,690
‫Kemudian untuk benar-benar menggunakan

410
00:21:47,690 --> 00:21:52,570
‫fungsi ini kita menyebutnya setelah review baru dibuat, oke.

411
00:21:52,570 --> 00:21:55,620
‫Untuk itu kita perlu menggunakan ini. konstruktor karena

412
00:21:55,620 --> 00:21:58,930
‫inilah yang menunjuk ke model saat ini.

413
00:21:58,930 --> 00:22:02,037
‫Sekarang ingat bagaimana kami mengatakan bahwa kami

414
00:22:02,037 --> 00:22:06,350
‫juga ingin memperbarui statistik setiap kali ulasan diedit atau dihapus,

415
00:22:06,350 --> 00:22:08,090
‫karena tindakan ini,

416
00:22:08,090 --> 00:22:11,210
‫tentu saja, juga akan memengaruhi jumlah dan rata-rata.

417
00:22:11,210 --> 00:22:13,960
‫Namun, melakukannya sedikit lebih kompleks.

418
00:22:13,960 --> 00:22:18,140
‫Jadi karena video ini sudah berjalan cukup lama, mari

419
00:22:18,140 --> 00:22:20,493
‫kita lanjutkan ke yang berikutnya.

