‫Jonas: Jadi kita belajar
‫tentang middleware Dokumen dan kueri, dan sekarang middleware
‫terakhir yang akan kita bicarakan adalah middleware agregasi,
‫dan seperti yang mungkin
‫bisa Anda tebak, middleware
‫agregasi memungkinkan kita untuk menambahkan kait sebelum atau
‫setelah agregasi terjadi,
‫dan sebagainya sekarang mari kita lanjutkan dengan contoh sebelumnya di
‫mana kita menyembunyikan tur rahasia dari kueri, sekarang dalam
‫agregasi tur rahasia masih digunakan, bukan?
‫Jadi mari kita konfirmasi
‫dengan cepat bahwa sebenarnya, misalnya di sini, di statistik get
‫tour kami, jadi di situlah kami menggunakan
‫agregasi pertama dan jadi Anda lihat kami
‫memiliki empat tur di sini, empat di mudah,
‫dan tiga di sedang dan jadi jadi 11 tapi kita
‫sudah tahu bahwa kami sebenarnya hanya ingin 10 tur.
‫Jadi ada 10 tur yang tidak rahasia,
‫dan satu yang rahasia, dan sekarang kami mendapatkan semua
‫11 tur ini di sini dan pada dasarnya
‫kami juga ingin mengecualikan tur rahasia dalam agregasi.
‫Jadi bagaimana kita bisa melakukan itu?
‫Nah mari kita lihat di
‫mana agregasi kita sebenarnya terjadi jadi itu di sini ya, jadi dalam
‫mendapatkan langkah-langkah tur, dan apa yang bisa kita lakukan adalah di
‫sini dalam keadaan pertandingan ini hanya mengecualikan tur
‫rahasia yang benar kan?
‫Jadi itu akan cukup mudah untuk
‫ditambahkan di sini, tetapi kemudian kita
‫harus menambahkan hal yang sama di sini di
‫agregasi lain yang kita miliki, dan jika
‫kita memiliki lebih banyak agregasi, kita harus menambahkan itu
‫di semuanya dan itu tentu saja bukan
‫ide yang baik, karena misalnya kita bisa lupa untuk melakukannya
‫dan itu juga hanya kode yang berulang dan jadi mari kita kecualikan itu tepat
‫di tingkat model, baiklah jadi mari kita tambahkan middleware agregasi di sini
‫dimulai dengan komentar.
‫Jadi middleware agregasi dan seperti sebelumnya
‫kita memiliki tourSchema. pra jadi kami ingin ini terjadi
‫sebelum agregasi benar-benar dieksekusi
‫dan jadi di sini kami menggunakan kait agregat.
‫Baiklah dan kemudian fungsi kita yang
‫lagi menerima fungsi berikutnya sehingga memanggil middleware berikutnya.
‫Baiklah, jadi mari kita mulai dengan melihat ini, jadi ingatlah
‫bahwa di sini di middleware kueri bahwa objek ini
‫menunjuk ke kueri saat ini.
‫Kemudian di sini di middleware dokumen, objek
‫ini menunjuk ke dokumen
‫saat ini, dan di sini di middleware agregasi
‫ini akan menunjuk ke objek agregasi saat ini.
‫Oke dan jadi mari kita lihat itu di
‫konsol tetapi sebelum itu izinkan saya menghapus log ini di sini.
‫Baiklah simpan saja, jalankan agregasi ini di sini dan itu
‫memakan banyak waktu jadi mari kita batalkan dan kembali
‫dan itu mungkin karena kita tidak
‫memanggil berikutnya di sini, dan sepertinya kita sudah tahu bahwa kita
‫terjebak dalam fungsi
‫middleware dan jadi itu tidak baik.
‫Jadi mari kita coba lagi sekarang kirim,
‫dan ya jadi sekarang kita kembali dan sekarang mari
‫kita lihat objek agregasi.
‫Oke jadi ada banyak hal
‫di sini jadi tidak terlalu menarik di sini dan saya tidak
‫dapat benar-benar menemukan apa yang saya coba tunjukkan di
‫sini dan jadi mari kita tambahkan ini. pipeline oke karena yang
‫sebenarnya ingin saya tunjukkan hanyalah objek pipeline.
‫Oke, dan sebenarnya itu pipeline seperti ini
‫jadi sebenarnya fungsi, metode.
‫Jadi mari kita bersihkan konsol di sini.
‫Coba ini lagi, dan jadi di sini kita mendapatkan pipa agregasi,
‫dan itu hanya array yang kita berikan
‫ke fungsi agregat sebelumnya.
‫Benar, jadi mari kita lihat dan di sini
‫kita memiliki array itu, yang ini bukan yang ini.
‫Jadi kami memiliki pertandingan
‫untuk mengelompokkan dan kemudian mengurutkannya jadi jika kami
‫melihat di sini di konsol kami memang memiliki pertandingan kami dengan
‫peringkat rata-rata yang kami miliki grup dan kemudian urutkan.
‫Jadi itu persis pipeline yang kita tentukan sebelumnya, dan
‫sekarang untuk menyaring tur rahasia yang harus kita
‫lakukan adalah menambahkan tahap kecocokan lain tepat di
‫awal array pipeline ini, benar
‫dan mari kita lakukan hal itu.
‫Jadi mari kita lakukan di sini sebelum
‫log ini, jadi ini. pipeline dan ingat bahwa ini adalah array
‫dan bagaimana cara menambahkan elemen di
‫awal array?
‫Kami menggunakan unshift dan itu adalah metode JavaScript standar
‫untuk array, oke, kami juga memiliki shift untuk menambahkan di akhir
‫array dan unshift di awal array, dan sekali
‫lagi yang ingin kami tambahkan di sini sekarang
‫adalah menambahkan hanya tahap lain, sangat mirip dengan apa yang kita
‫miliki di sini.
‫Jadi cocokkan dan kemudian secretTour, tidak sama dengan benar.
‫Simpan saja, jadi potongan kode di sini pada dasarnya persis seperti
‫yang kita miliki di sini, kan?
‫Pada dasarnya menghapus dari output
‫semua dokumen yang disetel secretTour ke true, bukan?
‫Jadi jika Anda menyimpannya sekarang, maka mari kita periksa ini, dan ingat sekarang
‫kita memiliki 11 tur, empat, empat, dan tiga
‫jadi mari kita periksa hasilnya setelah itu dan jadi
‫sekarang memang salah satu yang sulit Anda hilang jadi kami
‫hanya sekarang memiliki tiga tur sulit yang berarti
‫kami kembali hanya memiliki 10.
‫Oke dan sebenarnya kami dapat mengonfirmasi bahwa tur super
‫rahasia kami adalah tur yang sulit, oke dan sekarang sudah
‫hilang dan jadi hasil kami
‫sekarang hanya tentang tur non-rahasia biasa, oke?
‫Dan kita dapat melihat kembali alur agregasi kita sekarang dan di
‫sini Anda melihat bahwa sekarang kita memiliki dua tahap yang cocok ini.
‫Hebat dan seperti yang saya sebutkan
‫sebelumnya tidak masalah untuk mengulangi tahapan ini, kami dapat memiliki
‫tahapan pertandingan sebanyak yang kami inginkan, oke dan itu saja untuk middleware agregasi.
‫Saya tidak akan memasukkan kode pos apa pun di sini untuk
‫middleware yang sebenarnya tidak terlalu penting, dan saya
‫juga tidak akan membicarakan model middleware di sini
‫karena itu sebenarnya tidak terlalu penting.
‫Baiklah, jadi middleware adalah beberapa hal yang sangat keren
‫dan penting yang dapat kita tambahkan ke model kita,
‫dan memang ada hal keren lainnya
‫yang dapat kita lakukan dengan model, misalnya mengimplementasikan
‫metode instance yang merupakan metode yang akan tersedia di
‫dokumen selamanya setelah menjadi ditanyakan, dan itu
‫lagi-lagi bisa sangat berguna, dan
‫kita akan melakukannya nanti
‫di bagian otentikasi juga, oke.
‫Jadi saya akan membiarkannya sebentar, sekarang apa
‫yang akan kita lakukan di
‫bagian ini hanya untuk menyelesaikannya adalah benar-benar menambahkan beberapa validasi, baiklah
‫dan dalam dua video berikutnya kita akan membicarakannya.