‫Instruktur: Sebagai fitur berikutnya di API kami,
‫kami memiliki batasan bidang,
‫jadi, pada dasarnya, untuk memungkinkan klien memilih
‫bidang mana yang ingin
‫mereka dapatkan kembali sebagai tanggapan.
‫Jadi, untuk klien, selalu ideal
‫untuk menerima data sesedikit mungkin,
‫untuk mengurangi bandwidth
‫yang digunakan untuk setiap permintaan.
‫Dan itu, tentu saja, terutama
‫benar ketika kita memiliki kumpulan data yang sangat banyak, bukan?
‫Jadi ini adalah fitur
‫yang sangat bagus untuk memungkinkan pengguna API hanya meminta beberapa bidang.
‫Jadi, sebagai fitur ketiga, kita akan memiliki batasan bidang.
‫Dan, seperti sebelumnya, izinkan saya mulai dengan menunjukkan
‫kepada Anda bagaimana cara kerjanya di Postman.
‫Jadi, kita akan menentukan bidang yang disebut bidang, dan
‫kemudian nama bidang
‫yang sebenarnya ingin kita terima.
‫Jadi misalkan kita
‫hanya
‫ingin nama, durasi, tingkat kesulitan, dan harga saja, oke.
‫Jadi, implementasinya sebenarnya akan sangat mirip dengan apa yang
‫kami lakukan sebelumnya dengan pengurutan.
‫Jadi, jika req. pertanyaan. bidang, lalu
‫mari kita, sekali lagi,
‫membuat variabel untuk bidang ini di sini karena seperti
‫sebelumnya, Mongodbs, sebenarnya meminta string
‫dengan nama bidang dipisahkan oleh spasi, oke?
‫Sekarang izinkan saya
‫memulai dengan menulis bagian itu, oke, jadi, kueri itu sendiri.
‫Jadi query sama dengan query. pilih, oke?
‫Dan di sini, misalnya, ia mengharapkan
‫string seperti, nama lalu spasi, durasi dan harga misalnya, oke.
‫Jadi dengan cara ini, itu
‫hanya akan memilih tiga nama bidang ini
‫dan mengirim kembali hasilnya hanya berisi itu, oke?
‫Dan sebenarnya, operasi
‫memilih hanya nama bidang tertentu ini disebut memproyeksikan oke?
‫Jadi, sekarang mari kita
‫buat pada dasarnya, string, seperti yang kita lakukan di atas, oke.
‫Jadi kita mulai dengan req. pertanyaan. bidang, lalu kami membaginya
‫dengan koma, dan
‫menggabungkannya dengan string kosong.
‫Dengan spasi sebenarnya, maaf.
‫Jadi dengan spasi dan itu,
‫kemudian, akan menghasilkan string yang tepat ini dengan format yang tepat ini.
‫Kemudian di sini, yang harus kita lakukan adalah menggunakan bidang ini.
‫Kemudian, seperti sebelumnya, saya juga
‫ingin menambahkan default sehingga jika pengguna tidak
‫menentukan bidang bidang, oke, jadi, dalam
‫hal ini, kami akan benar-benar menghapus sesuatu, oke?
‫Dan izinkan saya menunjukkannya kepada Anda terlebih dahulu, jadi di
‫sini, kami selalu memiliki garis bawah ini, V, yang
‫disetel ke nol, dan Mongodbs hanya membuat bidang ini
‫karena menggunakannya secara internal.
‫Dan kami dapat menonaktifkannya, tetapi itu bukan praktik yang baik.
‫Sekali lagi, karena Mongodbs benar-benar menggunakannya, baiklah, tetapi yang
‫dapat kita lakukan pada dasarnya adalah
‫tidak pernah mengirimkannya ke klien, sehingga kita dapat mengecualikannya.
‫Dan cara kami melakukannya adalah, alih-alih melakukan garis bawah garis
‫bawah V seperti sebelumnya, jadi seperti yang
‫kami lakukan di sini,
‫pada dasarnya, kami hanya mengawalinya dengan minus, oke?
‫Dan minus kemudian tidak termasuk, tetapi tidak termasuk.
‫Jadi apa yang kami miliki
‫sebelumnya di sini lagi, dengan nama dan
‫durasi dan harga, yaitu memasukkan bidang-bidang ini dalam respons.
‫Tapi dengan cara ini,
‫dengan minus, kami memiliki segalanya kecuali bidang V di sini, oke?
‫Jadi kami hanya mengecualikan bidang ini, oke?
‫Jadi mari kita pergi ke depan dan menguji itu.
‫Kirim, dan mari kita tunggu dan ya, memang begitu,
‫ID bawaannya selalu termasuk oke?
‫Jadi kita tidak bisa menghapus itu, tapi
‫selain itu, kita hanya punya nama, durasi, kesulitan, dan
‫harga, oke, dan kita tentu saja bisa menggunakan minus
‫itu sehingga pengecualian di sini juga.
‫Jadi kita bisa punya semuanya, minus nama
‫dan minus durasi, misalnya.
‫Jadi mari kita uji itu juga.
‫Jadi, jika Anda sekarang memeriksanya, Anda tidak akan melihat namanya, dan tidak
‫melihat durasinya di mana pun di sini.
‫Benar, dan sekarang hanya sebagai tes
‫terakhir, mari kita lihat apakah default kita juga berfungsi.
‫Mengirim respons dan sebagainya, sekarang kita tidak lagi
‫memiliki variabel V di sini yang disetel ke nol di semua dokumen.
‫Baiklah, bagus, sekarang ada satu hal terakhir yang ingin saya
‫tunjukkan kepada Anda yaitu
‫bahwa kami juga dapat mengecualikan bidang langsung dari skema.
‫Baiklah, dan itu bisa sangat
‫berguna, misalnya, ketika kita memiliki data
‫sensitif yang seharusnya hanya digunakan secara internal.
‫Misalnya, hal-hal seperti
‫kata sandi tidak boleh diekspos ke klien dan
‫oleh karena itu, kami dapat
‫mengecualikan beberapa bidang tepat di skema.
‫Jadi misalnya, kita mungkin tidak
‫ingin pengguna melihat kapan tepatnya setiap tur dibuat.
‫Misalnya, tur mungkin sudah agak
‫lama atau semacamnya
‫dan, katakanlah kita ingin selalu menyembunyikan bidang CreatedAt ini, baiklah,
‫jadi kita bisa masuk ke
‫skema kita, yang ada di model
‫tur tentu saja, dan kemudian di CreatedAt,
‫kita cukup menyetel properti pilih di sini ke false.
‫Dan sekarang ketika kami mencoba untuk mendapatkan hasil kami, Anda melihat bahwa
‫itu sebenarnya tidak ada lagi, oke?
‫Jadi seperti ini,
‫pada dasarnya kita dapat menyembunyikan ini secara permanen dari output.
‫Sempurna, jadi satu lagi fitur yang benar-benar berfungsi sekarang dan sekarang
‫mari kita beralih ke yang berikutnya.