Bagaimana cara mendapatkan bidang unik di mongodb?

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

Bagaimana cara mendapatkan entri unik di MongoDB?

Dalam MongoDB, metode yang berbeda () menemukan nilai yang berbeda untuk bidang tertentu di seluruh koleksi tunggal dan mengembalikan hasilnya dalam sebuah larik. Dibutuhkan tiga parameter, yang pertama adalah bidang untuk mengembalikan nilai yang berbeda dan yang lainnya opsional.

Bagaimana cara mendapatkan nilai bidang yang berbeda di Kompas MongoDB?

Anda dapat melakukan ini melalui kerangka agregasi di Kompas, menggunakan $unwind dan $group . $unwind dilakukan untuk membuat dokumen unik untuk setiap elemen dalam larik target, yang memungkinkan operator $addToSet di tahap $group untuk kemudian menangkap genre sebagai elemen yang berbeda.

Bagaimana cara menghapus duplikat dari koleksi di MongoDB?

Catatan duplikat dapat dihapus dari koleksi MongoDB dengan membuat indeks unik pada koleksi dan menentukan opsi dropDups . Berikut adalah jejak sesi yang menampilkan konten koleksi sebelum dan sesudah membuat indeks unik dengan dropDup.

Apa kunci unik di MongoDB?

Pengantar MongoDB Unique. Kendala Unik MongoDB memastikan bahwa bidang yang diindeks di dalamnya, tidak menyimpan nilai duplikat untuk bidang yang sama , i. e. , memastikan keunikan bidang. Secara default, MongoDB menerapkan batasan unik ini pada kolom “_id”, saat memasukkan data baru.