Salah satu operasi terpenting dalam semua jenis database adalah mengambil data. Data dapat diambil sekaligus atau disaring. MongoDB menyediakan operasi pencarian untuk mengambil data. Data disimpan dalam dokumen, yang pada gilirannya disimpan dalam koleksi. Secara default, operasi pencarian akan mengambil semua dokumen dalam koleksi. Kami juga dapat memfilter data menggunakan kueri dan proyeksi dalam operasi pencarian. Selain operasi find, ada satu operasi lain yang mengembalikan larik semua nilai berbeda dari bidang yang diberikan. Operasi ini dikenal sebagai berbeda. Pada artikel ini, kita akan membahas pencarian MongoDB dan operasi yang berbeda dengan contoh
menemukan operasi
Operasi find adalah operasi utama untuk mengambil data dari koleksi. Mari lihat sintaks dari operasi find
db. Temukan()
Menggunakan operasi find dengan cara ini akan menghasilkan semua dokumen yang ada dalam koleksi. Mari kita lihat cara kerjanya
> db. detail. Temukan()
{ "_Indo". ObjectId("5d6545866e08386d93a75157"), "nama". "Yohanes", "umur". 21, "lokasi". "New York"}
{ "_Indo". ObjectId("5d6545916e08386d93a75158"), "nama". "Sam", "umur". 25, "lokasi". "Texas"}
{ "_Indo". ObjectId("5d6545a06e08386d93a75159"), "nama". "Lisa", "umur". 23, "lokasi". "Chicago"}
{ "_Indo". ObjectId("5d6545da6e08386d93a7515a"), "nama". "Ron", "usia". 26, "lokasi". "Chicago"}
{ "_Indo". ObjectId("5d6545e56e08386d93a7515b"), "nama". "Tandai", "usia". 29, "lokasi". "Texas"}
>
Pada perintah di atas, kami menggunakan operasi find dengan koleksi detail. Hal ini mengakibatkan semua dokumen yang ada di dalamnya. Tetapi untuk membuatnya lebih jelas untuk dibaca, kita dapat menggunakan operasi cantik dengan operasi find
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
> db. detail. Temukan(). cukup()
{
"_Indo". ObjectId("5d6545866e08386d93a75157"),
"nama". "Yohanes",
"usia". 21,
"lokasi". "New York"
}
{
"_Indo". ObjectId("5d6545916e08386d93a75158"),
"nama". "Sam",
"usia". 25,
"lokasi". "Texas"
}
{
"_Indo". ObjectId("5d6545a06e08386d93a75159"),
"nama". "Lisa",
"usia". 23,
"lokasi". "Chicago"
}
{
"_Indo". ObjectId("5d6545da6e08386d93a7515a"),
"nama". "ron",
"usia". 26,
"lokasi". "Chicago"
}
{
"_Indo". ObjectId("5d6545e56e08386d93a7515b"),
"nama". "Tanda",
"usia". 29,
"lokasi". "Texas"
}
>
Ini terlihat jauh lebih baik sekarang. Sekarang mari kita bahas bagian kueri dan proyeksi
Kueri dan Proyeksi
Kueri sebenarnya adalah kondisi yang menurutnya operasi pencarian akan cocok dengan dokumen. Itu hanya akan mengembalikan dokumen-dokumen yang bagian kuerinya cocok. Misalkan dari koleksi detail kami, kami ingin mengambil dokumen di mana lokasinya adalah Texas. Mari kita lihat bagaimana kita bisa melakukan ini
> db. detail. temukan({"lokasi". "Texas"}). cukup()
{
"_Indo". ObjectId("5d6545916e08386d93a75158"),
"nama". "Sam",
"usia". 25,
"lokasi". "Texas"
}
{
"_Indo". ObjectId("5d6545e56e08386d93a7515b"),
"nama". "Tanda",
"usia". 29,
"lokasi". "Texas"
}
>
Ya. Kami punya semua dokumen dimana lokasinya Texas. Perhatikan perintahnya
db. detail. temukan({lokasi. "Texas" }). cukup();
Saat kami menggunakan operasi pencarian sebelumnya, kami tidak melewatkan apa pun. Tetapi ketika kita harus memfilter data sesuai dengan beberapa kondisi, kita harus meneruskan kondisi tersebut ke operasi pencarian yang diapit oleh kurung kurawal. Ada banyak opsi untuk kueri. Kami dapat memfilter menurut nilai tertentu, atau dengan menggunakan operator seperti lebih besar dari atau kurang dari, dan banyak pilihan lain yang tersedia. Tetapi ada juga parameter kedua untuk operasi pencarian. Ini disebut proyeksi
Proyeksi menentukan bidang mana yang ingin kita kembalikan. Secara default, setiap bidang dokumen dikembalikan oleh operasi pencarian. Tapi kita selalu bisa menentukan field yang akan dikembalikan dengan mendefinisikan proyeksi
> db. detail. temukan({},{_id. 0, nama. 1}). cukup()
{ "nama". "Yohanes" }
{ "nama". "Sam"}
{ "nama". "Lisa" }
{ "nama". "ron"}
{ "nama". "Tanda" }
>
Perhatikan perintah di atas dan hasilnya. Dalam operasi pencarian, kami melewati dua parameter - set kurung kurawal kosong pertama dan kedua, set kurung kurawal lainnya, kali ini ada sesuatu yang tertulis di dalamnya. Bagian kedua adalah proyeksi. Bagian kosong adalah kueri. Kami tidak menentukan kueri apa pun di sini, tetapi penting untuk meneruskan parameter pertama saat menggunakan proyeksi. Proyeksi selalu menjadi parameter kedua dari operasi pencarian
Proyeksi di atas hanya akan mengembalikan bidang nama di setiap dokumen. Kami menetapkan nilai nama sebagai 1. Ini berarti hanya bidang nama yang akan kembali. Tapi kami juga menetapkan nilai _id sebagai 0. Kami harus melakukan ini karena, secara default, operasi pencarian akan selalu mengembalikan bidang _id
Menggabungkan kueri dan proyeksi
Mari kita lihat contoh operasi pencarian dengan kombinasi kueri dan proyeksi
> db. detail. temukan({lokasi. "Texas"},{_id. 0, nama. 1, usia. 1}). cukup()
{ "nama". "Sam", "umur". 25 }
{ "nama". "Tandai", "usia". 29 }
>
Operasi pencarian di atas mengembalikan nama dan umur semua dokumen di mana lokasinya adalah Texas
operasi yang berbeda
Operasi yang berbeda sedikit berbeda dari operasi find. Perbedaan mengembalikan array dari semua nilai berbeda dari bidang yang ditentukan. Mungkin ada ribuan dokumen dalam satu koleksi. Mungkin ada bidang umum di semua dokumen dan bidang ini dapat memiliki nilai yang serupa. Di sinilah perbedaan sangat membantu. Mari kita lihat sintaks dari operasi yang berbeda
db. berbeda()
Dalam operasi yang berbeda, perlu untuk meneruskan nama bidang atau akan menghasilkan kesalahan. Mari kita pahami operasi yang berbeda dengan bantuan sebuah contoh
> db. detail. berbeda ("lokasi")
[ "New York", "Texas", "Chicago" ]
>
Perintah di atas mengembalikan semua lokasi yang berbeda. Kami memiliki lima dokumen dalam koleksi detail tetapi array yang dikembalikan hanya berisi tiga nilai. Artinya ada dokumen dengan lokasi yang sama. Beginilah cara kerja operasi yang berbeda di MongoDB
Pertanyaan
Bersamaan dengan nama bidang, kami juga dapat mengirimkan kueri dengannya. Ini mirip dengan bagian kueri dari operasi pencarian. Perbedaan tidak akan memeriksa di mana kueri tidak cocok. Mari kita pahami ini dengan bantuan sebuah contoh
> db. detail. berbeda("lokasi",{"nama". "Yohanes"})
["New York"]
>
Perintah di atas hanya akan mencari lokasi yang berbeda di mana namanya adalah John
Kesimpulan
Baik operasi find maupun operasi yang berbeda sangat berguna untuk mengambil data dari MongoDB. Operasi pencarian mengembalikan data sekaligus atau menurut kueri dan proyeksi. Operasi yang berbeda memiliki fungsi khusus untuk mengambil nilai unik dari bidang tertentu