Dalam dunia pemrograman, array adalah salah satu struktur data yang paling banyak digunakan. Array digunakan di sisi klien dan sisi server. Mereka juga banyak digunakan dalam database NoSQL. Di MongoDB, array adalah salah satu tipe data yang didukung. Kami bahkan dapat menyimpan array objek sebagai nilai kunci. Perhatikan saja dokumen berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"_Indo". ObjectId("5e19d76fa45abb5d4d50c1d3"),
"nama". "Lionel Messi",
"usia". 32,
"negara". "Argentina",
"penghargaan". [
{
"menghadiahkan". "Ballon d'Or",
"berkali-kali". 6
},
{
"menghadiahkan". "Sepatu Emas",
"berkali-kali". 6
},
{
"menghadiahkan". "Pemain Terbaik Dunia FIFA Tahun Ini",
"berkali-kali". 1
}
]
}
Dokumen di atas berisi detail tentang pesepakbola Argentina Lionel Messi. Amati bidang "penghargaan".
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"penghargaan". [
{
"menghadiahkan". "Ballon d'Or",
"berkali-kali". 6
},
{
"menghadiahkan". "Sepatu Emas",
"berkali-kali". 6
},
{
"menghadiahkan". "Pemain Terbaik Dunia FIFA Tahun Ini",
"berkali-kali". 1
}
]
Nilainya adalah larik objek dan setiap objek berisi dua bidang – “penghargaan” dan “jumlahWaktu”. Pada artikel ini, kita akan membahas cara menggunakan metode find() dengan array objek di luwak
Kami akan menggunakan koleksi sepak bola. Ini memiliki dua dokumen dengan pasangan nilai kunci yang serupa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
"_Indo". ObjectId("5e19d76fa45abb5d4d50c1d3"),
"nama". "Lionel Messi",
"usia". 32,
"negara". "Argentina",
"penghargaan". [
{
"menghadiahkan". "Ballon d'Or",
"berkali-kali". 6
},
{
"menghadiahkan". "Sepatu Emas",
"berkali-kali". 6
},
{
"menghadiahkan". "Pemain Terbaik Dunia FIFA Tahun Ini",
"berkali-kali". 1
}
]
}
{
"_Indo". ObjectId("5e19d791a45abb5d4d50c1d4"),
"nama". "Cristiano Ronaldo",
"usia". 34,
"negara". "Portugal",
"penghargaan". [
{
"menghadiahkan". "Ballon d'Or",
"berkali-kali". 5
},
{
"menghadiahkan". "Sepatu Emas",
"berkali-kali". 4
},
{
"menghadiahkan". "Pemain Terbaik Dunia FIFA Tahun Ini",
"berkali-kali". 1
}
]
}
Kami akan menggunakan alat tukang pos untuk pengujian titik akhir. Penangan rute berikut akan dipanggil saat titik akhir '/ find' akan dieksekusi
CATATAN Kami menggunakan kerangka ekspres di NodeJS untuk membuat titik akhir API kami
router. rute("/temukan"). dapatkan(fungsi(req, res) {});
Sekarang, jika kita ingin mendapatkan semua dokumen yang nilai bidang negaranya adalah "Portugal", kita cukup menggunakan pendekatan berikut
temukan({negara. "Portugal" });
Tapi, bagaimana jika kita ingin semua dokumennya ada dimana
- Susunan penghargaan berisi objek yang memiliki "Sepatu Emas" sebagai nilai bidang penghargaan
- Di objek yang sama, nilai bidang numberOfTimes adalah 6
Sederhananya, Kami ingin mencari pemain sepak bola yang telah memenangkan 6 penghargaan Sepatu Emas. Jadi bagaimana kita bisa melakukan ini? . Tapi di sini kita perlu mengakses sesuatu di dalam objek, dan objek itu ada di dalam array, dan array itu, pada gilirannya, adalah nilai dari bidang penghargaan. Perhatikan hal-hal berikut
Ini adalah bagaimana kita dapat mengakses kunci dari sebuah objek di dalam sebuah array. Jadi mari kita lihat bagaimana kita bisa mencapai persyaratan kita di sini
{"penghargaan. menghadiahkan". "Sepatu Emas", "penghargaan. berkali-kali". 6}
Mari tambahkan ini ke metode find() di rute dan jalankan menggunakan alat tukang pos
router. rute("/temukan"). dapatkan(fungsi(req, res) {
sepak bola. Temukan(
{ "penghargaan. menghadiahkan". "Sepatu Emas", "penghargaan. berkali-kali". 6},
function(err, result) {
jika (salah) {
res. kirim(salah);
} kalau tidak {
res. json(hasil);
}
}
);
});
Seperti yang Anda lihat, kueri pencarian yang kami buat mengembalikan persis permainan yang kami cari. Ini bekerja dengan sempurna
Kesimpulan
Jadi ingat, saat mengakses array objek di luwak, kita harus menggunakan titik (. ) diikuti dengan nama bidang objek. Mencari di dalam array sangat umum dan akan berguna sehingga sangat bagus untuk menguasainya. Terima kasih telah bergabung dengan kami untuk tutorial basis pengetahuan Object Rocket lainnya