‫Guru: Jadi ingat bagaimana
‫dalam video tentang model data kami, kami
‫mengatakan bahwa kami dapat menyematkan atau mereferensikan
‫data pemandu wisata, jadi dalam video
‫ini saya akan menunjukkan kepada Anda bagaimana kami dapat
‫menerapkan penyematan dokumen pemandu wisata ke dalam dokumen tur.
‫Jadi sekali lagi, dalam kuliah ini kita
‫akan menyematkan dokumen pengguna ke dalam dokumen tur, dan kemudian
‫di video berikutnya, saya
‫akan menunjukkan kepada Anda bagaimana sebenarnya
‫kita bisa mereferensikan pengguna alih-alih menyematkan, oke?
‫Jadi idenya di sini adalah ketika
‫membuat dokumen tur baru, pengguna hanya akan
‫menambahkan larik ID pengguna, dan kami kemudian akan
‫mendapatkan dokumen pengguna yang sesuai berdasarkan
‫ID ini, dan
‫menambahkannya ke dokumen tur kami.
‫Jadi dengan kata lain, kami memasukkannya ke dalam tur kami, oke?
‫Jadi, mari kita lakukan itu di sini sekarang.
‫Jadi panduan akan bertipe array, oke?
‫Sangat sederhana, dan sebenarnya sebelum kami menerapkan kode
‫apa pun, izinkan saya menunjukkan kepada Anda
‫sebagai contoh bagaimana ini akan bekerja saat membuat tur baru.
‫Jadi, mari kembali ke
‫Postman di sini, dan buat tur
‫baru, oke, jadi
‫di sini, di tubuh kita, tentu saja sekarang kita
‫akan menambahkan panduan, kutipan, dan kemudian menentukan array ID, oke?
‫Jadi, mari dapatkan beberapa ID pengguna.
‫Jadi, dapatkan semua pengguna, mari kita lihat apa yang kita miliki di sini.
‫Jadi kami memiliki panduan di sini, sebenarnya, dan
‫mari kita dapatkan ID ini
‫bersama dengan tanda kutip, sebenarnya, jadi
‫mari kita taruh di
‫sini, dan mari tambahkan beberapa yang lain.
‫Jadi, ini di sini juga dan sebenarnya hanya dua ini.
‫Itu sudah cukup untuk menguji hal ini, oke, jadi beginilah cara
‫kita membuat tur baru
‫dengan dua pemandu, oke, dan sekali lagi setelah
‫kita menyimpan tur ini, kita akan,
‫di belakang
‫layar, mengambil dua
‫dokumen pengguna yang sesuai dengan dua ID ini, oke?
‫Jadi, mari kita terapkan itu,
‫dan kembali ke
‫model kita, tempat terbaik untuk melakukannya
‫adalah middleware yang sudah disimpan sebelumnya, bukan?
‫Jadi, itu akan terjadi secara otomatis di
‫belakang layar, pada
‫dasarnya, setiap kali tur baru disimpan, dan sebenarnya, saya
‫tidak ingin melakukannya di sini.
‫Jadi kita punya pertanyaan, ini
‫dia dokumen "Middleware", jadi mari kita
‫lakukan di sini.
‫Jadi turSchema. pra,
‫Baiklah, mari kita panggil berikutnya segera di sini, agar
‫kita tidak melupakannya pada akhirnya.
‫Oke, jadi kita mengerti ini. panduan sebagai input, dan ingat ini
‫akan menjadi array dari semua
‫ID pengguna, benar, jadi kami akan mengulanginya
‫menggunakan . map, dan
‫kemudian di setiap iterasi
‫dapatkan dokumen pengguna untuk ID saat
‫ini, oke, dan kita akan menyimpannya di dalam panduan, oke?
‫Jadi, elemen saat ini, yang akan menjadi
‫ID, kita
‫sebut saja ID untuk membuatnya
‫lebih mudah dipahami, dan sekarang kita benar-benar membutuhkan
‫pengguna, jadi mari kita impor itu.
‫Jadi, const User,
‫require, dan
‫sebenarnya ada di folder yang sama di sini, oke, jadi
‫User. findByID
‫dengan ID saat ini, oke?
‫Tapi sekarang, perlu diingat
‫bahwa kita sebenarnya perlu menunggu janji ini di sini, benar dan
‫begitu, oleh karena itu, fungsinya
‫perlu ditandai sebagai async,
‫tetapi sekarang kita benar-benar mendapatkan masalah, baiklah,
‫karena . metode map akan
‫menetapkan hasil setiap iterasi ke elemen baru dalam
‫array guides, oke, jadi sekarang kami
‫memiliki fungsi asinkron di
‫sini dan, seperti yang Anda tahu,
‫yang mengembalikan janji, dan sekarang
‫array panduan ini pada dasarnya adalah array penuh janji, oke.
‫Mari kita sebut panduan ini Janji dan
‫sekarang kita benar-benar perlu menjalankan
‫semua janji ini, pada dasarnya pada waktu yang sama.
‫Seperti yang saya tunjukkan sedikit lebih
‫awal dalam kode ini, setidaknya
‫jika Anda tidak melewatkan bagian JavaScript asinkron,
‫yang perlu kita lakukan hanyalah menunggu Promise. all and then guidesJanji,
‫oke, dan kita
‫bisa langsung menugaskan hasil ini
‫ke ini. panduan, dan pada dasarnya
‫menimpa larik ID candi itu dengan
‫larik dokumen pengguna, oke, dan karena sekarang kita menggunakan
‫menunggu di
‫sini, kita perlu menandai fungsi ini sebagai asinkron, oke?
‫Berikan selamat, dan saya pikir itu benar-benar itu, oke?
‫Jadi sekali lagi, kita perlu menggunakan Promise. semua di sini
‫karena hasil dari semua ini di sini adalah janji, oke,
‫jadi array ini di sini akan menjadi array
‫yang penuh dengan janji yang kemudian
‫kita jalankan dengan menunggu Promise. semua, oke?
‫Jadi, mari kita uji ini
‫sekarang, dan kita sudah menyiapkan semua kode ini di sini, kita
‫hanya perlu mengubah nama ini di sini.
‫Jadi, 'Test Tour', tapi ID-nya sudah ada di sini.
‫Jadi mari kita kirim ini, dan nama tur kita harus
‫lebih panjang, 'Tur Tugas Baru. ' Oke,
‫tapi sekarang mari kita lihat hasil kami, dan
‫memang kami mendapatkan panduan kami di sini, oke?
‫Jadi ini dokumen lengkapnya,
‫dan memang bukan hanya KTP saja kan?
‫Bagus, jadi beginilah
‫cara kami menerapkan penyematan untuk contoh pemandu wisata ini.
‫Nah, kode sederhana yang kami terapkan di
‫sini tentu saja hanya berfungsi untuk membuat dokumen baru,
‫bukan untuk memperbaruinya, bukan?
‫Jadi sekarang, kita harus
‫melanjutkan dan menerapkan logika yang sama ini juga untuk pembaruan.
‫Namun, saya tidak akan melakukannya karena,
‫ingat dari video tempat kami memodelkan data kami,
‫bahwa sebenarnya ada beberapa
‫kelemahan dalam menyematkan data ini dalam kasus ini.
‫Misalnya, bayangkan seorang pemandu wisata
‫memperbarui alamat emailnya, atau mereka mengubah
‫peran mereka dari pemandu menjadi pemandu utama.
‫Setiap kali salah satu dari perubahan ini terjadi,
‫Anda harus memeriksa apakah tur memiliki
‫pengguna tersebut sebagai panduan, dan jika demikian,
‫maka perbarui tur juga, dan itu
‫benar-benar banyak pekerjaan dan kami tidak
‫akan pergi
‫ke arah itu, oke?
‫Sekarang, saya masih ingin menunjukkan kepada Anda
‫bagaimana sebenarnya penyematan
‫bekerja, dan bagaimana kita dapat menerapkannya
‫dalam situasi ini karena saya sangat yakin
‫bahwa sangat penting bagi Anda untuk
‫tetap tahu bagaimana melakukan
‫segalanya jika Anda membutuhkannya dalam aplikasi
‫Anda sendiri, oke, tetapi dalam
‫situasi khusus ini kita akan, alih-alih menyematkan, menggunakan
‫referensi, dan saya berbicara tentang alasan
‫melakukannya kembali di video itu, oke?
‫Jadi, mari kita lanjutkan dan lakukan itu
‫dengan benar di kuliah berikutnya.