‫Instruktur: Sekarang mari kita isi
‫ulasan dengan pengguna dan data tur.
‫Jadi seperti yang dilakukan pada tur,
‫sekarang mari kita buat agar tur dan pengguna
‫akan terisi secara otomatis setiap kali ada kueri untuk ulasan.
‫Karena kita sudah melakukan itu sebelumnya,
‫sekarang saya akan memberi Anda tantangan lain, oke.
‫Jadi saya ingin Anda melanjutkan
‫dan melakukannya seperti yang kita lakukan di tur, tetapi sekarang untuk ulasannya.
‫Hanya petunjuk yang perlu saya
‫berikan kepada Anda sebelum Anda dapat melakukan
‫ini sendiri, adalah ketika Anda ingin mengisi
‫dua bidang, Anda harus benar-benar memanggil isi dua kali.
‫Jadi sekali untuk masing-masing bidang, baiklah.
‫Dengan informasi itu, sebaiknya
‫Anda menjeda video sekarang dan mencobanya.
‫Jadi saya harap itu tidak terlalu sulit.
‫Mari kita lanjutkan dan tutup saja beberapa file di
‫sini, jadi semua yang tidak terkait dengan ulasan tidak
‫kita perlukan lagi.
‫Jadi mari kita pergi ke model review dan kemudian mengimplementasikan,
‫atau menemukan middleware terlebih dahulu.
‫Jadi kami melakukannya pada skema, seperti yang
‫sudah Anda ketahui, dan sekali lagi kami menggunakan ekspresi
‫reguler untuk mencocokkan string pada dasarnya, yang dimulai dengan find.
‫Jadi sekali lagi, ini akan berfungsi untuk
‫find, find one, dan semua metode find one lainnya yang
‫tersedia di Mongoose.
‫Seperti biasa, saya mulai dengan menulis berikutnya.
‫Dan sekarang yang perlu kita lakukan
‫hanyalah memanggil populate pada kueri saat ini, jadi ini. mengisi, dan sekarang saya
‫akan benar-benar menentukan objek opsi karena saya
‫hanya ingin memilih beberapa bidang dan bukan
‫seluruh tur, dan juga bukan seluruh pengguna.
‫Jadi ingat, kita mulai dengan properti path, dan
‫yang ini untuk tur.
‫Jadi sekali lagi, dengan menetapkan tur di sini, berarti bidang ini
‫di sini, yang memiliki beberapa nama
‫persis, akan menjadi bidang yang diisi
‫berdasarkan model tur.
‫Nah, karena itulah yang kami tentukan di sini, oke.
‫Jadi referensinya adalah model yang disebut
‫tour, dan pada dasarnya di koleksi itulah
‫Mongoose akan mencari dokumen dengan ID yang kita tentukan.
‫Baiklah, jadi kami ingin tur, tetapi katakanlah kami sebenarnya hanya
‫menginginkan nama tur dan tidak
‫ada yang lain.
‫Jadi pilih, oke, lalu hanya namanya, lalu seperti yang saya katakan,
‫jika kita ingin mengisi beberapa bidang, yang perlu
‫kita lakukan hanyalah memanggil populate lagi.
‫Jadi pada titik ini kueri diisi dengan tur, dan sekarang
‫kita perlu mengisinya lagi, kali
‫ini dengan pengguna.
‫Dan sekarang pilih,
‫dan itu sebenarnya hanya menampilkan nama pengguna dan foto,
‫dan bukan misalnya, hal-hal seperti email.
‫Jadi katakanlah seseorang
‫membuka API untuk mendapatkan semua ulasan,
‫tetapi kemudian kami tidak ingin membocorkan semua
‫detail tentang pengguna yang memposting ulasan ini ke klien.
‫Jadi seharusnya tidak ada yang benar-benar dapat
‫mengetahui data pribadi tentang pengulas, seperti email, oke.
‫Jadi sekali lagi, kami hanya membocorkan, kami hanya mengirim data yang relevan
‫tentang pengguna, dan dalam hal ini, itu nama dan foto, oke.
‫Jadi berikan ini simpanan, dan jika kita sekarang
‫mencapai atau mendapatkan semua titik akhir
‫ulasan, maka tur dan pengguna harus diisi alih-alih kita
‫hanya melihat ID di sana.
‫Mari kita coba itu, dan ini dia.
‫Jadi itu berfungsi, kami mendapatkan nama,
‫dan tentu saja juga ID, dan kemudian sama untuk pengguna.
‫Jadi kita mendapatkan namanya, tapi kemudian bukan fotonya.
‫Jadi mari kita lihat, mungkin saya tidak mendapatkan, tentukan
‫properti foto, jadi mari kita lihat itu.
‫Jadi userModel, tapi sebenarnya itu ada.
‫Tidak, maaf, tentu saja kami tidak melihat foto tersebut karena kami
‫tidak pernah menentukan foto apa pun untuk pengguna kami.
‫Oke, dan karena itu satu-satunya properti yang benar-benar ada adalah
‫namanya, dan itulah yang kemudian kita dapatkan.
‫Oke, dan itu sebenarnya.
‫Sangat sederhana, hanya itu yang perlu kita lakukan untuk
‫mendapatkan semua data
‫terkait, dan seperti yang kita tentukan dalam model data kita.
‫Sekali lagi, perlu
‫diingat bahwa yang satu ini akan menambahkan
‫beberapa kueri tambahan, dan dalam kasus
‫ini, sebenarnya ini adalah dua
‫kueri, karena di balik layar, Luwak sebenarnya harus menanyakan tur
‫dan juga pengguna untuk menemukan dokumen yang cocok, oke.
‫Jadi ini mungkin
‫harus menambahkan beberapa waktu di sini untuk kueri.
‫Jadi butuh 266 milidetik, seperti ini.
‫Mari kita, demi eksperimen, mengomentari kode
‫ini, lalu coba lagi.
‫Dan ini memakan banyak waktu, saya tidak yakin mengapa.
‫Jadi mari kita lakukan lagi, dan jadi Anda lihat, 157 milidetik,
‫dan jika sekarang kita mengembalikannya, mari kita lakukan lagi.
‫Dan lagi, itu membutuhkan banyak
‫waktu, dan sekali lagi, saya melakukannya dua kali.
‫Tapi tetap saja Anda lihat butuh waktu sedikit lebih lama, oke.
‫Jadi bukan akhir
‫dunia, itu seperti 100 milidetik lebih, tetapi
‫ketika Anda mencapai skala
‫tertentu, itu mungkin membuat perbedaan.
‫Jadi sekali lagi, saya hanya ingin Anda mengingatnya.
‫Bagaimanapun, itu saja untuk kuliah ini, jadi mari kita lanjutkan.