﻿1
00:00:00,960 --> 00:00:02,940
‫-: Jadi fitur filter

2
00:00:02,940 --> 00:00:06,250
‫yang telah kami terapkan sekarang sudah berfungsi dengan baik,

3
00:00:06,250 --> 00:00:09,860
‫tetapi dalam video ini kami ingin membawanya ke tingkat berikutnya

4
00:00:09,860 --> 00:00:12,733
‫dengan mengizinkan beberapa kueri yang lebih kompleks.

5
00:00:14,210 --> 00:00:17,680
‫Jadi saat ini pengguna hanya dapat

6
00:00:17,680 --> 00:00:22,430
‫memfilter dokumen dengan menyetel satu kunci sama dengan nilai, bukan?

7
00:00:22,430 --> 00:00:24,760
‫Tapi sekarang, kami sebenarnya ingin juga

8
00:00:24,760 --> 00:00:27,680
‫menerapkan lebih besar dari, lebih besar atau sama

9
00:00:27,680 --> 00:00:31,733
‫dari, lebih kecil dari, dan lebih kecil atau sama dari operator.

10
00:00:32,780 --> 00:00:34,510
‫Jadi, alih-alih hanya

11
00:00:34,510 --> 00:00:37,500
‫memiliki persamaan, kami ingin benar-benar dapat, misalnya, mengatakan

12
00:00:37,500 --> 00:00:40,130
‫durasi lebih besar atau sama dengan lima,

13
00:00:40,130 --> 00:00:42,290
‫dan tidak hanya sama, oke?

14
00:00:42,290 --> 00:00:45,310
‫Dan itu membuat segalanya sedikit lebih rumit.

15
00:00:45,310 --> 00:00:48,140
‫Sekarang, sebelum menulis kode apa pun, saya

16
00:00:48,140 --> 00:00:50,810
‫akan benar-benar melakukan latihan menulis kueri

17
00:00:50,810 --> 00:00:53,043
‫seperti apa tampilannya di MongoDB.

18
00:00:55,150 --> 00:00:58,200
‫Jadi seperti apa sebenarnya objek filter itu?

19
00:00:58,200 --> 00:01:00,360
‫Dan mari kita tulis di sini sebagai komentar,

20
00:01:00,360 --> 00:01:02,273
‫dan sekali lagi, hanya sebagai latihan.

21
00:01:03,270 --> 00:01:06,090
‫Jadi objeknya akan terlihat seperti ini,

22
00:01:06,090 --> 00:01:09,723
‫jadi kesulitan, mulai dengan yang itu, setel ke mudah,

23
00:01:14,040 --> 00:01:17,030
‫dan kemudian durasinya; dan sekarang ingat bahwa

24
00:01:17,030 --> 00:01:21,000
‫ketika kita ingin menggunakan operator, kita perlu memulai objek lain.

25
00:01:21,000 --> 00:01:24,530
‫Dan kemudian untuk operator yang lebih besar atau

26
00:01:24,530 --> 00:01:29,530
‫sama dengan yang kita gunakan seperti ini, ke lima, kan, ingat itu?

27
00:01:30,640 --> 00:01:33,050
‫Jadi beginilah cara kita menulis objek

28
00:01:33,050 --> 00:01:36,383
‫filter secara manual untuk kueri yang baru saja kita tentukan.

29
00:01:37,340 --> 00:01:40,240
‫Sekarang mari kita kembali ke Postman

30
00:01:40,240 --> 00:01:43,860
‫sehingga saya dapat menunjukkan kepada Anda cara yang sangat

31
00:01:43,860 --> 00:01:47,440
‫standar untuk menulis string kueri termasuk operator ini.

32
00:01:47,440 --> 00:01:50,670
‫Dan kita melakukannya seperti ini, jadi sebelum tanda sama dengan

33
00:01:50,670 --> 00:01:53,150
‫kita membuka tanda kurung dan kemudian di

34
00:01:53,150 --> 00:01:55,880
‫sini kita menulis operatornya, jadi dalam hal ini

35
00:01:55,880 --> 00:01:58,650
‫lebih besar dari atau sama, dan hanya itu.

36
00:01:58,650 --> 00:02:01,880
‫Dan pada dasarnya seperti ini, kita menambahkan bagian

37
00:02:01,880 --> 00:02:04,680
‫ketiga ke pasangan nilai kunci, jadi

38
00:02:04,680 --> 00:02:07,610
‫kita memiliki kunci, nilainya, dan sekarang juga operatornya.

39
00:02:07,610 --> 00:02:09,930
‫Dan kami menggunakan lagi tanda kurung

40
00:02:09,930 --> 00:02:11,923
‫ini untuk menentukan operator.

41
00:02:13,060 --> 00:02:15,320
‫Jadi sekali lagi, itu adalah

42
00:02:15,320 --> 00:02:17,170
‫cara standar dan

43
00:02:17,170 --> 00:02:21,150
‫sekarang mari kita lanjutkan dan lihat string kueri yang

44
00:02:21,150 --> 00:02:23,360
‫diberikan Express kepada kita

45
00:02:23,360 --> 00:02:25,823
‫dan seperti sebelumnya, mari kita log

46
00:02:27,310 --> 00:02:32,310
‫kueri reg dot ke konsol, log kueri reg dot, semua Baik.

47
00:02:32,600 --> 00:02:35,530
‫Jadi mari kita lihat seperti apa objek

48
00:02:35,530 --> 00:02:37,640
‫kueri kita saat kita

49
00:02:37,640 --> 00:02:39,940
‫menentukan string kueri seperti ini.

50
00:02:39,940 --> 00:02:42,040
‫Baiklah, sekarang hal pertama yang Anda perhatikan adalah bahwa

51
00:02:42,040 --> 00:02:43,640
‫kami mendapatkan kesalahan di sini,

52
00:02:43,640 --> 00:02:45,573
‫tapi jangan khawatir tentang itu untuk saat ini.

53
00:02:46,570 --> 00:02:50,470
‫Jadi yang saya minati di sini, adalah objek ini, jadi izinkan

54
00:02:50,470 --> 00:02:52,920
‫saya melanjutkan dan menyalinnya di sini.

55
00:02:55,570 --> 00:02:58,820
‫Baiklah, jadi apa yang Anda perhatikan di sini?

56
00:02:58,820 --> 00:03:01,420
‫Nah, apa yang kita lihat di sini adalah

57
00:03:01,420 --> 00:03:03,870
‫bahwa objek kueri terlihat hampir identik

58
00:03:03,870 --> 00:03:06,350
‫dengan objek filter yang kita tulis secara manual,

59
00:03:06,350 --> 00:03:10,513
‫satu-satunya perbedaan adalah bahwa di sini kita memiliki tanda operator MongoDB di sini.

60
00:03:11,360 --> 00:03:13,420
‫Jadi itulah satu-satunya hal

61
00:03:13,420 --> 00:03:16,210
‫yang hilang di depan nama operator ini.

62
00:03:16,210 --> 00:03:18,620
‫Oke, jadi solusi untuk

63
00:03:18,620 --> 00:03:21,780
‫ini pada dasarnya adalah mengganti semua operator

64
00:03:21,780 --> 00:03:24,300
‫seperti ini dengan operator MongoDB koresponden

65
00:03:24,300 --> 00:03:29,030
‫mereka, jadi pada dasarnya menambahkan tanda dolar ini di sini, oke.

66
00:03:29,030 --> 00:03:31,270
‫Jadi sekarang mari kita terapkan itu, dan sebenarnya

67
00:03:31,270 --> 00:03:33,433
‫kita melakukannya di suatu tempat di sini, mari

68
00:03:34,810 --> 00:03:36,960
‫kita tambahkan beberapa komentar lagi di sini.

69
00:03:38,700 --> 00:03:42,090
‫Jadi pemfilteran yang kita lakukan di kuliah terakhir, sekarang

70
00:03:42,090 --> 00:03:45,313
‫mari kita tambahkan beberapa pemfilteran lanjutan, dan itulah

71
00:03:47,920 --> 00:03:50,903
‫kode yang akan kita tulis sekarang.

72
00:03:52,720 --> 00:03:56,393
‫Sekarang mari kita letakkan kode ini di sini tepat di atas, baiklah.

73
00:03:57,290 --> 00:03:59,860
‫Kemudian kode ini di sini kita tidak terlalu membutuhkannya tetapi saya

74
00:03:59,860 --> 00:04:01,160
‫masih ingin menyimpannya di sini

75
00:04:01,160 --> 00:04:03,193
‫jadi mari kita taruh di sini di akhir.

76
00:04:04,960 --> 00:04:08,270
‫Dan kemudian kode ini di sini sebagai referensi hanya untuk memastikan

77
00:04:08,270 --> 00:04:11,210
‫bahwa kita tahu apa yang kita lakukan di sini.

78
00:04:11,210 --> 00:04:13,330
‫Baiklah, dan sekarang kita tahu apa

79
00:04:13,330 --> 00:04:15,230
‫yang perlu kita lakukan di

80
00:04:15,230 --> 00:04:17,400
‫sini, sebenarnya ini hanya masalah Javascript sederhana.

81
00:04:17,400 --> 00:04:19,420
‫Dan cara saya menyelesaikannya

82
00:04:19,420 --> 00:04:22,710
‫adalah ini, jadi pertama-tama saya akan mengonversi objek menjadi

83
00:04:25,230 --> 00:04:30,230
‫string sehingga string kueri sama dengan JSON dot stringify objek kueri, dan sekarang

84
00:04:35,600 --> 00:04:38,780
‫saya dapat menggunakan string kueri itu untuk menggunakan

85
00:04:38,780 --> 00:04:40,963
‫fungsi ganti di atasnya .

86
00:04:42,060 --> 00:04:44,530
‫Baiklah, jadi yang ingin saya ganti

87
00:04:44,530 --> 00:04:48,330
‫sekarang adalah gte dengan tanda dolar gte, dan kemudian

88
00:04:48,330 --> 00:04:50,403
‫juga beberapa operator lainnya.

89
00:04:51,360 --> 00:04:53,290
‫Jadi yang ingin kita

90
00:04:53,290 --> 00:04:56,113
‫ganti lebih besar dari atau sama, lebih

91
00:04:56,970 --> 00:05:01,010
‫besar dari, kurang dari atau sama, dan lebih kecil dari, dan

92
00:05:01,010 --> 00:05:03,620
‫ada beberapa cara yang bisa kita lakukan,

93
00:05:03,620 --> 00:05:06,193
‫tapi saya akan menggunakan ekspresi reguler.

94
00:05:07,243 --> 00:05:10,340
‫Dan bagi saya pribadi, ekspresi reguler adalah

95
00:05:10,340 --> 00:05:13,450
‫salah satu konsep yang paling sulit dalam Javascript

96
00:05:13,450 --> 00:05:16,210
‫dan sebenarnya secara umum dalam pemrograman.

97
00:05:16,210 --> 00:05:18,270
‫Jadi biasanya ketika saya perlu

98
00:05:18,270 --> 00:05:21,538
‫melakukan sesuatu seperti ini, saya cukup membuka Stack Overflow atau

99
00:05:21,538 --> 00:05:24,180
‫hanya Google sekitar untuk menemukan solusi yang tepat

100
00:05:24,180 --> 00:05:26,280
‫untuk masalah yang saya coba selesaikan, oke.

101
00:05:26,280 --> 00:05:28,070
‫Jadi yang ingin kita lakukan

102
00:05:28,070 --> 00:05:31,660
‫sekarang di sini adalah pada dasarnya mencocokkan salah satu dari empat kata

103
00:05:31,660 --> 00:05:33,900
‫ini dan kemudian menggantinya dengan kata yang sama

104
00:05:33,900 --> 00:05:35,933
‫tetapi dengan tanda dolar di depan.

105
00:05:36,980 --> 00:05:38,530
‫Dan ekspresi reguler

106
00:05:38,530 --> 00:05:42,620
‫untuk menemukan salah satu dari empat kata ini menjadi seperti

107
00:05:42,620 --> 00:05:46,820
‫ini; jadi kami membuka tanda kurung ini dan kemudian kami menulis

108
00:05:46,820 --> 00:05:50,517
‫operatornya, jadi gte atau gt atau lte atau lt.

109
00:05:55,500 --> 00:06:00,500
‫Dan kemudian kita juga perlu menambahkan \b ini sebelum dan sesudah, dan itu

110
00:06:01,140 --> 00:06:04,283
‫karena kita hanya ingin mencocokkan kata-kata persis ini.

111
00:06:05,220 --> 00:06:08,183
‫Jadi bayangkan ada sebuah kata yang memiliki lt di

112
00:06:08,183 --> 00:06:10,700
‫dalamnya, maka kita tentu tidak ingin

113
00:06:10,700 --> 00:06:14,070
‫mencocokkan yang hanya ingin kita cocokkan jika itu adalah kata

114
00:06:14,070 --> 00:06:16,840
‫yang tepat, tanpa ada string lain di sekitarnya.

115
00:06:16,840 --> 00:06:19,170
‫Jadi ekspresi reguler yang saya miliki di

116
00:06:19,170 --> 00:06:21,310
‫sini akan menanganinya, dan sebenarnya ada

117
00:06:21,310 --> 00:06:24,670
‫satu bagian yang hilang dan itu adalah bendera g di sini

118
00:06:24,670 --> 00:06:27,130
‫yang berarti itu akan benar-benar terjadi beberapa kali.

119
00:06:27,130 --> 00:06:30,270
‫Jadi kalau kita punya seperti dua atau

120
00:06:30,270 --> 00:06:33,880
‫tiga operator atau bahkan semuanya, maka akan menggantikan semuanya.

121
00:06:33,880 --> 00:06:36,240
‫Dan tanpa g ini di sini,

122
00:06:36,240 --> 00:06:40,300
‫itu hanya akan menggantikan kemunculan pertama, jadi yang ini sangat penting.

123
00:06:40,300 --> 00:06:43,460
‫Sekarang, sebenarnya kita ingin menggantinya dengan apa?

124
00:06:43,460 --> 00:06:45,450
‫Nah, metode replace

125
00:06:45,450 --> 00:06:48,880
‫sebenarnya menerima callback yang sangat kuat, dan callback

126
00:06:48,880 --> 00:06:51,100
‫ini memiliki argumen pertama, kata

127
00:06:51,100 --> 00:06:53,523
‫yang cocok, atau string yang cocok.

128
00:06:55,060 --> 00:06:58,690
‫Jadi kita bisa meneruskan kecocokan ke fungsi panggilan balik itu dan

129
00:06:58,690 --> 00:07:01,840
‫apa yang kita kembalikan dari panggilan balik ini adalah

130
00:07:01,840 --> 00:07:04,690
‫string baru yang akan menggantikan yang lama, oke?

131
00:07:04,690 --> 00:07:07,200
‫Jadi mari kita buat string

132
00:07:07,200 --> 00:07:08,820
‫template di sini,

133
00:07:08,820 --> 00:07:13,820
‫dan jadi kita ingin mengganti pencocokan dengan tanda dolar, oke, jadi

134
00:07:14,190 --> 00:07:17,060
‫ini adalah bagian dari sintaks string template.

135
00:07:17,060 --> 00:07:19,860
‫Jadi ini pertandingan ini, dan kemudian kami

136
00:07:19,860 --> 00:07:22,613
‫ingin meletakkan tanda dolar di depannya.

137
00:07:25,690 --> 00:07:28,570
‫Dan sekarang hanya untuk

138
00:07:29,970 --> 00:07:34,250
‫memastikan, mari kita log ke konsol dan benar-benar ingin

139
00:07:34,250 --> 00:07:38,303
‫objek kembali, jadi titik JSON mengurai string kueri.

140
00:07:40,210 --> 00:07:43,200
‫Baiklah, biarkan saya melanjutkan dan membersihkan ini di sini sehingga

141
00:07:43,200 --> 00:07:45,603
‫Anda dapat melihat hasilnya sedikit lebih baik.

142
00:07:48,541 --> 00:07:50,050
‫Jadi sekali lagi, kita mendapatkan

143
00:07:50,050 --> 00:07:52,240
‫kesalahan ini di sini dan itu tentu saja

144
00:07:52,240 --> 00:07:54,330
‫karena MongoDB tidak dapat benar-benar menggunakan string

145
00:07:54,330 --> 00:07:56,933
‫kueri atau objek kueri seperti yang kita miliki sekarang.

146
00:07:58,980 --> 00:08:01,300
‫Dan di sini kami memiliki

147
00:08:01,300 --> 00:08:04,610
‫dua hasil dan Anda benar-benar melihat bahwa hasil kami

148
00:08:04,610 --> 00:08:07,150
‫sama persis seperti sebelumnya dan ada sesuatu

149
00:08:07,150 --> 00:08:09,670
‫di sini yang jelas tidak berfungsi.

150
00:08:09,670 --> 00:08:12,240
‫Jadi mari kita coba mencari tahu apa itu.

151
00:08:12,240 --> 00:08:15,940
‫Dan di sini ekspresi reguler terlihat baik-baik saja, semuanya terlihat

152
00:08:15,940 --> 00:08:18,707
‫baik-baik saja di sini, ah, tapi oke,

153
00:08:18,707 --> 00:08:22,470
‫masalahnya adalah saya menggantinya dalam string tetapi kemudian saya tidak

154
00:08:22,470 --> 00:08:24,320
‫menyimpannya di mana pun.

155
00:08:24,320 --> 00:08:28,030
‫Dan sebenarnya kami ingin menyimpannya kembali ke string kueri.

156
00:08:28,030 --> 00:08:30,580
‫Jadi mari kita ubah

157
00:08:30,580 --> 00:08:33,940
‫ini di sini menjadi let, sehingga

158
00:08:33,940 --> 00:08:38,940
‫kemudian dapat mengubah data dan katakanlah, string kueri, oh maaf.

159
00:08:39,640 --> 00:08:44,640
‫Jadi, string kueri sama dengan string kueri yang diganti, sama

160
00:08:45,530 --> 00:08:49,750
‫seperti sebelumnya, jadi yang saya lupakan hanyalah menyimpan hasilnya

161
00:08:49,750 --> 00:08:52,693
‫di sini kembali ke variabel.

162
00:08:54,320 --> 00:08:58,670
‫Mari kita coba lagi, dan sekarang berhasil.

163
00:08:58,670 --> 00:09:01,170
‫Jadi sekarang kita memiliki

164
00:09:01,170 --> 00:09:04,400
‫tanda dolar di depan operator, bagus.

165
00:09:04,400 --> 00:09:07,840
‫Oke, jadi berhasil, mari singkirkan komentar ini di sini dan sekarang

166
00:09:07,840 --> 00:09:10,430
‫akhirnya, yang harus kita lakukan adalah sebenarnya

167
00:09:10,430 --> 00:09:13,703
‫di sini tidak menggunakan objek kueri tetapi hanya menggunakan ini.

168
00:09:16,730 --> 00:09:19,290
‫Jadi JSON. mengurai string kueri, dan

169
00:09:19,290 --> 00:09:22,020
‫tentu saja jika Anda tidak memiliki operator apa pun dalam string

170
00:09:22,020 --> 00:09:23,770
‫kueri, maka semuanya akan berfungsi dengan baik.

171
00:09:23,770 --> 00:09:27,920
‫Itu tidak akan menemukan salah satu dari empat operator ini di sana tetapi itu

172
00:09:27,920 --> 00:09:29,670
‫tidak masalah, itu tidak akan menggantikan

173
00:09:30,539 --> 00:09:31,403
‫apa pun.

174
00:09:32,681 --> 00:09:36,290
‫Dan juga mari kita lanjutkan dan coba ini dan ini

175
00:09:37,690 --> 00:09:39,800
‫membutuhkan sedikit waktu tetapi memang hasilnya

176
00:09:39,800 --> 00:09:41,750
‫kembali dengan tiga hasil,

177
00:09:41,750 --> 00:09:45,020
‫jadi sekarang mari kita periksa apakah mereka benar-benar benar.

178
00:09:45,020 --> 00:09:47,860
‫Jadi durasinya harus lebih besar atau sama

179
00:09:47,860 --> 00:09:50,570
‫dari lima, dan yang ini di sini

180
00:09:50,570 --> 00:09:52,730
‫adalah durasi lima, ini memiliki

181
00:09:52,730 --> 00:09:54,880
‫durasi sembilan, yang lebih besar

182
00:09:54,880 --> 00:09:58,730
‫atau sama dari lima, dan itu benar-benar berfungsi, kesulitannya masih

183
00:09:58,730 --> 00:10:02,460
‫mudah dan jadi apa artinya kode yang baru saja kita

184
00:10:02,460 --> 00:10:04,603
‫terapkan berfungsi dengan baik.

185
00:10:05,480 --> 00:10:08,750
‫Sempurna, sekarang mari kita bersenang-senang menambahkan parameter

186
00:10:08,750 --> 00:10:11,380
‫lain di sana, jadi mari kita

187
00:10:11,380 --> 00:10:13,860
‫filter harganya sekarang juga.

188
00:10:13,860 --> 00:10:18,860
‫Jadi yang ini hampir 2000, lalu 1100, yang ini 300.

189
00:10:19,350 --> 00:10:23,070
‫Jadi sekarang mari kita filter untuk harga kurang dari seribu, atau

190
00:10:23,070 --> 00:10:25,150
‫kurang dari seribu lima ratus.

191
00:10:28,100 --> 00:10:32,920
‫Dan harga, dan sekarang lagi tanda kurung kami,

192
00:10:32,920 --> 00:10:37,920
‫dan kami menggunakan kurang dari 1500, dan baiklah, kirimkan itu.

193
00:10:41,320 --> 00:10:46,240
‫Dan apa yang kita dapatkan di sini, oh, sekarang kita hanya memiliki dua hasil.

194
00:10:46,240 --> 00:10:51,240
‫Dan memang, harga di sini, 397, dan di sini 1197,

195
00:10:51,420 --> 00:10:54,930
‫dan yang sebelum itu 2000 sekarang hilang.

196
00:10:54,930 --> 00:10:57,470
‫Jadi kami memfilter yang itu juga

197
00:10:57,470 --> 00:11:00,670
‫menggunakan lagi operator yang baru saja kami terapkan.

198
00:11:00,670 --> 00:11:03,030
‫Dan kami sekarang dapat memfilter

199
00:11:03,030 --> 00:11:07,060
‫semua jenis barang di sini tetapi Anda mengerti maksudnya, jadi

200
00:11:07,060 --> 00:11:10,110
‫ya, kami menerapkan jenis pemfilteran lanjutan kami di

201
00:11:10,110 --> 00:11:14,500
‫sini pada titik ini, yang sekarang bahkan menerima empat operator ini.

202
00:11:14,500 --> 00:11:16,600
‫Sekarang di dunia nyata, kita

203
00:11:16,600 --> 00:11:19,340
‫kemudian harus menulis beberapa dokumentasi, pada dasarnya

204
00:11:19,340 --> 00:11:22,040
‫untuk memungkinkan pengguna mengetahui jenis operasi apa

205
00:11:22,040 --> 00:11:25,100
‫yang dapat mereka lakukan pada API kita, bukan?

206
00:11:25,100 --> 00:11:28,800
‫Jadi sekali lagi, idealnya kami benar-benar mendokumentasikan API kami,

207
00:11:28,800 --> 00:11:31,660
‫menentukan permintaan mana yang dapat dibuat menggunakan

208
00:11:31,660 --> 00:11:34,360
‫metode htp mana, dan juga jenis pemfilteran

209
00:11:34,360 --> 00:11:36,490
‫atau pengurutan apa, atau semua

210
00:11:36,490 --> 00:11:39,580
‫fitur ini, mana yang tersedia dan bagaimana mereka

211
00:11:39,580 --> 00:11:41,570
‫dapat menggunakannya, benar ?

212
00:11:41,570 --> 00:11:44,400
‫Sekarang, dalam kasus kami, kami tentu saja tidak

213
00:11:44,400 --> 00:11:47,000
‫akan melakukan itu tetapi sekali lagi, jangan

214
00:11:47,000 --> 00:11:50,160
‫lupa bahwa jika Anda benar-benar mengimplementasikan API yang akan digunakan

215
00:11:50,160 --> 00:11:53,600
‫oleh orang lain, maka Anda harus benar-benar melakukan dokumentasi semacam ini.

216
00:11:53,600 --> 00:11:56,780
‫Tapi bagaimanapun, mari kita beralih ke video

217
00:11:56,780 --> 00:11:59,203
‫berikutnya dan menerapkan fungsi penyortiran.

