‫Pria: Hei, di sana. Jadi dalam video
‫ini kita akan terus bekerja dengan pipa agregasi.
‫Dan saya sangat menyukai video ini karena
‫dalam video ini kita akan memecahkan masalah bisnis yang sebenarnya.
‫Jadi mari kita bayangkan bahwa kita benar-benar
‫mengembangkan aplikasi ini untuk Perusahaan Alam.
‫Jadi katakanlah mereka meminta
‫kita untuk mengimplementasikan sebuah fungsi
‫untuk menghitung bulan tersibuk pada tahun tertentu.
‫Jadi pada dasarnya dengan menghitung berapa
‫banyak tur dimulai di setiap bulan pada tahun tertentu.
‫Dan perusahaan sangat membutuhkan penyesuaian
‫ini untuk mempersiapkan tur ini, seperti
‫menyewa pemandu wisata atau membeli peralatan dan menangani
‫semua hal seperti itu.
‫Jadi ini adalah masalah bisnis nyata
‫yang sekarang dapat kita
‫selesaikan dengan menggunakan pipa agregasi. Oke?
‫Jadi, ini akan menjadi tantangan nyata dan
‫saya-- Saya harap ini akan menjadi
‫sangat menyenangkan untuk menyelesaikan kebutuhan bisnis nyata semacam ini.
‫Setidaknya jika Nature's adalah bisnis yang nyata, kurasa.
‫Jadi, mari kita
‫mulai dengan membuat fungsi lagi.
‫Jadi ekspor titik dan saya akan menyebutnya:
‫dapatkan paket bulanan.
‫Baiklah.
‫Dan lagi itu akan menjadi-- metode
‫fungsi asinkron, meminta respons atau mencoba blok cache dan saya sebenarnya
‫bisa saja pergi dan menyalinnya
‫dari atas sini.
‫Tapi sudahlah. Baiklah.
‫Dan uh sekarang mari kita juga menerapkan rute uh
‫di sini.
‫Dan saya hanya akan
‫menduplikasi baris ini jadi rencana bulanan...
‫Dan inilah yang disebut:
‫dapatkan paket bulanan. Dan sebenarnya kami ingin
‫bisa melewati satu tahun di URL. Jadi mari kita
‫gunakan parameter URL untuk itu. Baiklah.
‫Jadi eh...
‫kembali ke sini mari kita
‫mulai dengan mendefinisikan tahun.
‫Jadi tahun berasal dari req dot params dot year.
‫Ingat itu dan sekali
‫lagi trik untuk mengubahnya menjadi
‫angka. Oke?
‫Lalu saya akan membuat
‫variabel rencana yang akan menunggu agregat titik tur.
‫Jadi seperti sebelumnya dan untuk saat ini
‫saya akan membiarkannya kosong di sini.
‫Dan saya akan menyalin potongan kode ini
‫untuk kemudian mengirimkan hasilnya.
‫Dan yang ini disebut rencana dan baiklah.
‫Jadi sekarang kami siap untuk memulai alur agregasi kami seperti
‫yang kami lakukan di video terakhir.
‫Sekarang untuk memulai, mari kita
‫lihat hasil lengkapnya.
‫Hanya agar kita bisa mendapatkan ide yang lebih baik
‫tentang apa yang sebenarnya kita butuhkan untuk membangun di sini.
‫Jadi mari kita dapatkan semua tur dan singkirkan
‫string kueri ini sepenuhnya.
‫Jadi di sini kita memiliki
‫sembilan tur dan setiap tur, ingat, memiliki
‫susunan tanggal mulai ini.
‫Jadi satu tur akan dimulai pada 25 April 2021.
‫Kemudian yang berikutnya dimulai pada 20 Juli dan kemudian
‫5 Oktober. Baiklah.
‫Kemudian eh yang berikutnya memiliki tanggal mulai
‫ini dan semuanya saya percaya memiliki tiga tanggal mulai.
‫Oke? Jadi, tanggal-tanggal inilah yang
‫sebenarnya kita butuhkan sebagai titik awal untuk membuat fungsi
‫ini atau membuat alur agregasi ini.
‫Karena ingat, kami ingin menghitung berapa banyak tur yang ada
‫untuk setiap bulan di tahun tertentu.
‫Jadi mari kita menganalisis tahun 2021, oke?
‫Kami memiliki satu tur di bulan April, satu di bulan Juli, satu di bulan Oktober.
‫Kalau begitu mari kita lihat wisata selanjutnya.
‫Di sini kita memiliki satu di bulan Juni, satu di bulan Juli, dan satu di bulan Agustus.
‫Jadi pada bulan Juli kita sudah memiliki dua.
‫Jadi yang ini dan yang ini.
‫Berikutnya kita punya uh, satu di bulan Maret, satu di bulan Mei, dan
‫satu di bulan Juni. Jadi di bulan Juni kita juga sudah punya dua.
‫Oke? Jadi kami dapat terus melakukannya
‫dan melakukannya secara manual, tetapi tentu saja kami ingin melakukannya dengan agregasi kami.
‫Jadi jika Anda ingin
‫menambahkan semua ini, cara termudah pada dasarnya adalah melakukan
‫satu tur untuk masing-masing tanggal di sini, bukan?
‫Dan kita benar-benar dapat melakukannya menggunakan pipa agregasi.
‫Ada tahapan untuk melakukan hal itu.
‫Dan itu disebut bersantai.
‫Jadi mari kita gunakan sekarang dan
‫saya akan menunjukkan kepada Anda uh-- hasilnya dan mengapa kita benar-benar membutuhkannya.
‫Oke? Jadi, sekali lagi
‫kita mendefinisikan sebuah objek dan kemudian nama panggungnya.
‫Dan dalam hal ini adalah: bersantai. Oke?
‫Dan apa yang akan dilakukan bersantai pada dasarnya adalah
‫mendekonstruksi bidang array dari
‫dokumen info dan kemudian mengeluarkan satu dokumen untuk setiap elemen array.
‫Dan itulah yang saya katakan sebelumnya.
‫Artinya, pada dasarnya kami ingin memiliki satu tur
‫untuk masing-masing tanggal ini dalam susunan. Oke?
‫Dan tahap ini bisa sangat berguna untuk banyak kasus.
‫Jadi, bidang dengan larik yang ingin kita lepaskan
‫adalah tanggal mulai.
‫Baiklah dan untuk saat ini, itu saja.
‫Jadi saya hanya ingin menunjukkan kepada Anda hasil dari itu sekarang.
‫Dan saya pikir kita sudah benar-benar memiliki
‫segalanya untuk bekerja. Jadi perlu diingat bahwa
‫rute ini disebut paket bulanan dan kemudian dengan satu tahun.
‫Yang untuk saat ini tidak akan
‫ada hasilnya tapi um, kita harus tetap mendefinisikannya.
‫Jadi rencana bulanan dan tahun 2021.
‫Jadi mari kita kirim ini sekarang.
‫Dan memang kita sekarang memiliki tanggal mulai ini tidak
‫lagi sebagai array tetapi hanya elemen pertama dari array
‫yang kita miliki sebelumnya.
‫Mari kita menempatkan mereka berdampingan. Dan jadi Anda lihat, kami
‫telah atau benar-benar melakukannya dengan yang pertama.
‫Jadi kami memiliki pengambil pertama untuk 25
‫April, 20 Juli, dan 5 Oktober.
‫Jadi sekarang kita memiliki pendaki pertama pada tanggal ini di sini, kemudian
‫kita memiliki pejalan kaki pertama pada uh, 20 Juli,
‫dan sekarang kita akan memiliki pendaki pertama pada tanggal 5 Oktober.
‫Jadi, persis hasil yang kami
‫inginkan karena sekarang kami memiliki satu dokumen untuk setiap tanggal.
‫Oke? Jadi, alih-alih memiliki sembilan, kami sekarang memiliki 27
‫yang merupakan sembilan kali tiga. Baiklah.
‫Jadi, itu kencan pertama. Sekarang mari kita
‫lanjutkan dan memilih dokumen untuk tahun yang telah berlalu.
‫Oke? Dan ingat stage mana
‫yang kita gunakan untuk itu, kita menggunakan match.
‫Jadi ingat, match pada dasarnya adalah untuk memilih dokumen.
‫Jadi hanya untuk melakukan query.
‫Dan tahun adalah tanggal mulai.
‫Jadi tanggal mulai adalah yang akan kita cari.
‫Jadi tanggal mulai, dan sekarang apa yang kita inginkan?
‫Kami ingin—tanggal pada dasarnya lebih besar dari 1
‫Januari tahun berjalan, jadi
‫katakanlah 2021. Dan kami ingin
‫kurang dari 1 Januari 2022, oke.
‫Jadi pada dasarnya kami ingin itu menjadi 2020 dan 2022. Baiklah?
‫Jadi mari kita masukkan itu ke dalam kode sekarang.
‫Jadi tanggal mulai dan kemudian kita membutuhkan
‫objek lain untuk operator. Jadi, lebih besar atau sama
‫dari dan di MongoDB ini berfungsi dengan baik dengan tanggal.
‫Jadi Mongo sebenarnya sempurna untuk bekerja dengan tanggal
‫seperti melakukan perbandingan tanggal. Jadi itu bekerja sangat hebat.
‫Jadi sekarang kita benar-benar perlu menentukan tanggal baru di
‫sini sehingga, tanggal itu dapat dibandingkan dengan tanggal yang ada
‫di setiap dokumen.
‫Jadi rumus tanggalnya adalah tahun, bulan, dan tanggal.
‫Jadi mari kita buat string template di
‫sini dan gunakan variabel tahun kita.
‫Jadi 1 Januari.
‫Jadi, kami ingin tanggal kami lebih besar
‫atau sama dari 1 Januari 2021 dan mari kita tulis di sini
‫hanya untuk mengingatnya. Dan kami ingin itu menjadi
‫kurang dari, atau kita dapat mengatakan kurang dari, sama.
‫Mari kita lanjutkan dan salin yang ini dan kemudian
‫31 Desember. Oke? Jadi, pada dasarnya kami ingin
‫berada di antara hari pertama tahun ini dan hari
‫terakhir tahun ini. Oke?
‫Jadi mari kita terus mengujinya, jadi saya akan
‫mengujinya sekarang setelah setiap tahapan. Jadi mengirim ini dan
‫sekarang kita seharusnya hanya memiliki tur di sini yang ada di tahun 2021.
‫Jadi mari kita pastikan bahwa 2021, di sini juga, di sini
‫juga, di sini juga.
‫Mm, jadi Anda lihat kami benar-benar tidak punya tahun lain. Benar.
‫Selalu 2021. Oke? Jadi saya pikir kita sudah cukup melihat.
‫Jadi, mari kita kembali. Selanjutnya adalah di mana keajaiban terjadi.
‫Dan itu biasanya di babak penyisihan grup.
‫Jadi mari kita tambahkan grup di sini, jadi seperti
‫sebelumnya jadi grup dan ingat kita perlu menentukan bidang ID pada
‫dasarnya untuk mengatakan apa yang ingin kita gunakan untuk mengelompokkan dokumen kita.
‫Sekarang kita ingin mengelompokkannya berdasarkan bulan, bukan?
‫Tetapi saat ini kami hanya memiliki
‫seluruh tanggal, dengan tahun, bulan, tanggal, dan bahkan jam.
‫Jadi saya kira itu jam 10 pagi atau sesuatu.
‫Tapi sekali lagi kami hanya ingin bulan. Jadi izinkan saya
‫menunjukkan kepada Anda seperti operator MongoDB ajaib lainnya.
‫Jadi, di mana itu? Jadi, di sini, kembali ke referensi
‫ini di sini kita sebenarnya memiliki beberapa operator pipa agregasi.
‫Dan di sinilah kami memiliki operator kencan yang
‫sangat berguna ini. Jadi mari kita lihat ini.
‫Dan salah satu yang akan kita gunakan adalah bulan.
‫Jadi itu kembali ke bulan untuk tanggal sebagai angka.
‫Jadi ini pada dasarnya akan mengekstrak
‫bulan dari tanggal kami. Dan masih banyak operator lainnya.
‫Seperti ini misalnya, kita bahkan bisa menghitung minggu atau
‫tahun saja, oke?
‫Tapi minggu ini juga bisa sangat berguna.
‫Tapi mari kita uh, mari kita simpan dengan bulan. Baiklah?
‫Jadi sekali lagi, Anda dapat melihat
‫uh-- operator agregasi khusus ini.
‫Karena ada banyak sekali, seperti yang Anda lihat di sini.
‫Oke? Jadi sebenarnya operator yang
‫kami gunakan di sini di pipa agregasi adalah uh, ya persis seperti itu.
‫Mereka adalah operator pipa agregasi.
‫Kami memiliki tahapan dan kemudian operator yang dapat kami gunakan. Oke.
‫Dan dalam hal ini, sekali lagi, kami menggunakan bulan.
‫Dan sekali lagi nama bidang,
‫di mana kami pada dasarnya ingin mengekstrak tanggal.
‫Baiklah, simpan, lalu kesalahan itu hilang, oke.
‫Jadi kami mengelompokkannya sekarang berdasarkan bulan.
‫Dan sekarang informasi sebenarnya yang kita
‫inginkan untuk setiap bulannya adalah berapa banyak tur yang dimulai di bulan itu?
‫Benar? Dan untuk itu semua yang
‫akan kita lakukan pada dasarnya adalah menghitung jumlah tur yang memiliki bulan tertentu, bukan?
‫Jadi jumlah tur dimulai.
‫Dan yang ini sebenarnya sangat
‫mirip dengan yang kami lakukan sebelumnya.
‫Jadi kami menggunakan add dan kemudian untuk setiap
‫dokumen kami menambahkan satu. Jadi seperti yang kita lakukan sebelumnya.
‫Tapi sebenarnya itu penjumlahan dan bukan penambahan, oke jadi seperti di sini
‫ketika kita menghitung tur untuk setiap kesulitan kita
‫cukup menambahkan nomor satu untuk setiap dokumen.
‫Dan di sini kita melakukan hal yang sama.
‫Baiklah, jadi mari kita uji lagi ini.
‫Dan kami sudah sangat dekat dengan hasil akhir kami.
‫Dan memang, ini dia. Jadi kami memiliki Februari dengan satu tur.
‫Desember dengan satu tur, kami memiliki November atau sebenarnya
‫September dengan dua tur.
‫Dan kemudian kami memiliki dua tur di semua
‫ini di sini sebenarnya kami memiliki tiga tur di bulan Juli.
‫Jadi ini semakin mendekati hasil kami.
‫Jadi itu benar-benar fantastis.
‫Jadi bagian ini di sini, yang menurut saya paling
‫sulit sudah bekerja.
‫Baiklah.
‫Sekarang kami sebenarnya ingin beberapa informasi lebih lanjut
‫yang tidak hanya berapa banyak tur tetapi
‫juga tur yang mana? Jadi mari kita lakukan itu.
‫Jadi jika Anda ingin informasi tentang tur mana
‫yang sebenarnya harus array.
‫Benar? Karena bagaimana lagi
‫kita akan menentukan dua atau tiga tur yang berbeda dalam satu bidang, bukan?
‫Jadi pada dasarnya kita ingin membuat sebuah
‫array dan kita melakukannya dengan menggunakan push
‫dan kemudian apa yang akan kita masukkan ke
‫dalam array itu saat setiap dokumen melewati pipa
‫ini hanyalah nama dokumen, atau
‫sebenarnya field nama. Jadi bukan nama dokumen
‫tapi field nama.
‫Jadi dalam hal ini yang namanya wisata. Oke jadi mari kita uji.
‫Dan...
‫bam, ini dia!
‫Jadi kami juga sekarang memiliki nama wisata di sana.
‫Sangat fantastis. Mari kita lihat, ya. Di sini kita memiliki ketiganya.
‫Selanjutnya, mari kita benar-benar mengubah nama bidang
‫ini di sini, oke?
‫Sekarang tidak benar-benar berubah tetapi kami hanya akan menambahkan
‫bidang lain yang akan memiliki nilai yang sama
‫di sini sehingga nanti pada dasarnya kami dapat menghapus ID ini.
‫Oke, dan untuk itu kita akan menggunakan tahap selanjutnya
‫yang disebut: add field.
‫Jadi tambahkan bidang dan yang
‫ini cukup mudah. Itu hanya melakukan apa yang dikatakannya.
‫Jadi add field digunakan untuk menambah field dan sebenarnya
‫itu disebut add field.
‫Jadi sekarang, nama yang ingin kita tambahkan atau
‫bidangnya disebut bulan dan memiliki nilai bidang
‫dengan nama ID.
‫Baiklah. Jadi, cukup lurus
‫ke depan hanya nama bidang dan kemudian nilainya.
‫Yang seperti biasa, kita perlu menggunakan tanda dolar.
‫Baiklah, hanya untuk mengujinya lagi.
‫Memang sekarang kita memiliki bulan.
‫Kemudian selanjutnya, mari kita singkirkan ini dan jadi kita
‫menggunakan project.
‫Jadi saya benar-benar mencoba untuk menempatkan sebanyak mungkin tahap di sini yang saya bisa
‫untuk-- untuk menunjukkan kepada Anda semua yang saya bisa.
‫Jadi bagaimana cara kerja proyek? Yah kami hanya
‫memberikan masing-masing nama bidang nol atau satu.
‫Jadi izinkan saya menunjukkan itu kepada Anda. Jadi kita bisa mengatakan ID dan
‫mengaturnya ke nol. Dan itu kemudian akan
‫membuatnya jadi ID tidak lagi muncul. Jika saya menempatkan satu
‫di sini, maka itu akan benar-benar muncul, oke?
‫Jadi yang ini tidak akan saya uji. Biarkan saya menambahkan yang
‫berikutnya yang merupakan jenis yang saya yakin saya gunakan sebelumnya, tetapi saya masih
‫ingin mengurutkannya di sini berdasarkan nomor atau tur.
‫Oke, jadi sekarang ini tidak 100% berguna, kami masih melewatkannya
‫karena kami harus benar-benar mengurutkannya berdasarkan jumlah
‫tur dimulai.
‫Jadi nama bidangnya adalah jumlah tur dimulai dan eh ingat kita
‫punya satu sebelumnya yang untuk naik dan minus satu untuk
‫turun dan tentu saja itu yang
‫kita inginkan.
‫Jadi dimulai dengan angka tertinggi.
‫Jadi seharusnya tiga dalam kasus kami dan ya, memang begitu.
‫Jadi Juli adalah bulan tersibuk dengan tiga tur dimulai
‫Pendaki Hutan, Penjelajah Laut, dan Pencinta Olahraga.
‫Oke, jadi ini sudah selesai.
‫Mari saya tunjukkan satu, eh tahap terakhir di sini yang uh,
‫tidak terlalu membantu di sini tapi saya tetap
‫ingin menunjukkannya kepada Anda.
‫Jadi kita punya limit, dan yang ini persis sama dengan
‫limit di query uh. Jadi pada dasarnya itu akan
‫memungkinkan kita untuk hanya memiliki enam dokumen di sini.
‫Oke jadi pada dasarnya enam output.
‫Oke jadi mari kita uji itu, dan sekarang memang kita seharusnya hanya
‫memiliki enam.
‫Satu, dua, tiga, empat, lima, dan enam. Baiklah.
‫Sekali lagi, tidak terlalu berguna karena itu akan memotong
‫enam bulan terbesar, yang tidak kita inginkan.
‫Jadi mari kita atur ke 12
‫di sini, agar kami dapat meninggalkannya di sini sebagai referensi untuk Anda.
‫Baiklah, jadi sekali lagi tapi, uh seharusnya bekerja sekarang dan
‫masalah bisnis yang sebenarnya sekarang terpecahkan.
‫Dan saya tahu ini cukup banyak benda bergerak yang kita
‫miliki di sini. Banyak tahapan yang berbeda.
‫Jadi saya tahu banyak yang harus Anda ambil saat ini.
‫Tapi jangan khawatir, Anda tidak harus mengetahui semua
‫hal ini sekaligus.
‫Dengan latihan, Anda akan terus meningkat dan
‫Anda akan tahu kapan harus menggunakan alat
‫mana yang Anda miliki.
‫Ingatlah bahwa Anda selalu dapat membaca
‫dokumentasi yang merupakan bahan pembelajaran yang lengkap dan sangat
‫bagus selain kursus ini, oke?
‫Dan itu berlaku untuk semua teknologi yang
‫kita pelajari di sini.
‫Jadi saya sangat mendorong Anda untuk selalu mempelajari dokumentasi.
‫Dan saya tahu itu bisa sangat menakutkan untuk melihatnya dan tanpa
‫kursus ini akan jauh lebih sulit untuk belajar dari
‫dokumentasi tetapi dengan titik
‫awal yang sangat bagus yang
‫Anda dapatkan di video ini, maka jauh lebih
‫mudah bagi Anda untuk menyimpannya
‫belajar lebih banyak eh, menggunakan dokumentasi itu, oke?
‫Jadi saya tidak mengharapkan Anda untuk menyelesaikan tantangan
‫ini sendiri, itulah sebabnya pada dasarnya kami melakukannya
‫bersama di sini, bukan?
‫Tapi saya harap Anda bersenang-senang seperti saya
‫karena sekali lagi, saya sangat suka memecahkan masalah seperti ini-- saya
‫pikir itu sangat menyenangkan.
‫Tapi bagaimanapun, cukup bicara sekarang.
‫Di bagian selanjutnya, kita sekarang akan
‫berbicara tentang beberapa uh, fitur lain yang tersedia untuk
‫kita di Mongo, jadi itu juga akan cukup menyenangkan.