Apakah indeks mongodb harus unik?

Indeks unik adalah indeks yang membantu menjaga integritas data dengan memastikan tidak ada baris data dalam tabel yang memiliki nilai kunci yang identik

Saat Anda membuat indeks unik untuk tabel yang ada dengan data, nilai dalam kolom atau ekspresi yang terdiri dari kunci indeks diperiksa keunikannya. Jika tabel berisi baris dengan nilai kunci duplikat, proses pembuatan indeks akan gagal. Ketika indeks unik ditentukan untuk sebuah tabel, keunikan diberlakukan setiap kali kunci ditambahkan atau diubah dalam indeks. Penegakan ini mencakup penyisipan, pembaruan, pemuatan, impor, dan integritas set, untuk beberapa nama. Selain menegakkan keunikan nilai data, indeks unik juga dapat digunakan untuk meningkatkan kinerja pengambilan data selama pemrosesan kueri.

Indeks non-unik tidak digunakan untuk menerapkan batasan pada tabel yang terkait dengannya. Sebagai gantinya, indeks non-unik digunakan semata-mata untuk meningkatkan kinerja kueri dengan mempertahankan urutan terurut dari nilai data yang sering digunakan

Menyertakan dan mengecualikan kunci NULL

Indeks unik dan non-unik dapat dibuat sehingga kunci tidak dimasukkan ke dalam objek indeks ketika semua kolom atau ekspresi kunci adalah nol. Mengecualikan kunci null dapat menghasilkan penyimpanan yang lebih baik dan pengoptimalan kinerja untuk kasus di mana Anda tidak ingin kueri mengakses data yang terkait dengan kunci null. Untuk indeks unik, pemberlakuan keunikan data tabel mengabaikan baris di mana kunci indeks adalah nol

Perbedaan antara primary key atau unique key constraint dan indeks unik

Penting untuk dipahami bahwa tidak ada perbedaan yang signifikan antara primary key atau unique key constraint dan indeks unik. Untuk menerapkan konsep batasan kunci primer dan unik, pengelola basis data menggunakan kombinasi indeks unik dan batasan NOT NULL. Oleh karena itu, indeks unik tidak memberlakukan batasan kunci primer sendiri karena mengizinkan nilai nol. Meskipun nilai null mewakili nilai yang tidak diketahui, dalam hal pengindeksan, nilai null diperlakukan sama dengan nilai null lainnya

Oleh karena itu, jika indeks unik terdiri dari satu kolom, hanya satu nilai nol yang diperbolehkan-lebih dari satu nilai nol akan melanggar batasan unik. Demikian pula, jika indeks unik terdiri dari beberapa kolom, kombinasi nilai dan nol tertentu hanya dapat digunakan satu kali

Kendala Unik MongoDB memastikan bahwa bidang yang diindeks di dalamnya, tidak menyimpan nilai duplikat untuk bidang yang sama, yaitu. e. , memastikan keunikan bidang. Secara default, MongoDB menerapkan batasan unik ini pada kolom “_id”, saat memasukkan data baru. Salah satu tanggung jawab utama adalah memastikan tidak ada data duplikat yang disimpan dalam satu kunci. Kami juga memiliki batasan di sini, seperti MongoDB tidak akan dapat membuat indeks unik pada bidang tertentu, jika koleksi entah bagaimana telah menyimpan data apa pun yang akan melanggar fitur batasan unik untuk indeks

Sintaksis

Sekarang kita telah memahami apa Unique Constraint di MongoDB, mari kita pelajari sintaks standar untuk menulis metode Unique ini

db.collection_name.createIndex( {field_name : 1} , {unqiue : true} )

Mulai Kursus Ilmu Data Gratis Anda

Hadoop, Ilmu Data, Statistik & lainnya

Penjelasan. Sekarang, seperti yang Anda lihat pada sintaks di atas, kami telah membuat indeks sederhana, yang berarti data yang disimpan dalam koleksi akan diindeks dan menambahkan argumen dengan “{unqiue. true}” mengimplementasikan batasan unik

Bagaimana Kendala UNIK bekerja di MongoDB?

Indeks Unik memungkinkan penyisipan dan penyimpanan nilai dalam dokumen ke dalam koleksi JIKA tidak ada dokumen lain dalam koleksi yang sama dengan kunci dan nilai indeks yang sama. Kendala unik dapat diimplementasikan pada indeks majemuk. Ini membantu MongoDB untuk menerapkan keunikan saat menggabungkan nilai kunci indeks. Kendala Unik atas beberapa dokumen terpisah dimungkinkan di MongoDB, dan ini merupakan fungsi penting untuk menghindari penyimpanan nilai yang sama untuk kunci yang diindeks dalam dokumen yang berbeda

Kendala Unik di MongoDB hanya akan mengizinkan satu dokumen dengan nilai yang sama untuk kunci yang diindeks. Jika kami mencoba memasukkan nilai yang sama untuk satu kunci yang diindeks, itu akan menghasilkan kesalahan

Kueri #1

db.code.find()_

Ini mengembalikan setiap dokumen dalam koleksi

Kueri #2

db.code.insert( { name:”kumar”, city:“Pune”, code:19 } )

Paket Ilmu Data Semua dalam Satu(360+ Kursus, 50+ proyek)

Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?

Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?
Apakah indeks mongodb harus unik?

Harga
Lihat Kursus

360+ Kursus Daring. 50+ proyek. 1500+ Jam. Sertifikat yang Dapat Diverifikasi. Akses Seumur Hidup
4. 7 (86.584 peringkat)

Ini adalah upaya untuk memasukkan catatan dengan kode yang sama

Kode

db.code.find()_

Keluaran

Apakah indeks mongodb harus unik?

Penjelasan. Di sini, kami telah mengimplementasikan indeks unik untuk kunci "kode", jadi ketika kami mencoba menyimpan dokumen dengan kode yang ada, hasilnya adalah "kesalahan kunci duplikat"

Batasan Unik untuk Nilai Null

Saat kami menyimpan dokumen apa pun, kami menyimpan nilai untuk kunci masing-masing, dan disimpan sesuai pengindeksan. Namun jika kita mencoba untuk menyimpan dokumen yang tidak memiliki nilai atau data tertentu untuk kunci, untuk kunci yang tidak pasti, dokumen akan disimpan, dan nilai kosong akan disimpan sebagai nilai null dalam dokumen itu. Di MongoDB, hanya dokumen yang diizinkan untuk disimpan dengan satu bidang indeks yang hilang

Contoh untuk Menerapkan Kendala UNIK di MongoDB

Menerapkan Batasan Unik pada dokumen terpisah untuk tidak menyimpan nilai yang sama untuk kunci indeks, dalam dua dokumen berbeda

Contoh 1

Kami akan mencoba memasukkan dan menyimpan dokumen dengan nilai duplikat. Kami memiliki koleksi bernama educba, yang akan kami periksa dengan metode find. db. pendidikan. menemukan()

Kode

db.educba.find()_

Keluaran

Apakah indeks mongodb harus unik?

Seperti yang Anda lihat pada gambar di atas, kami memiliki koleksi bernama educba, dan dokumen tersebut memiliki satu "_id" unik default dan dua kunci lagi. Kami sekarang akan menerapkan batasan unik pada "Nama", yang akan menjadikannya unik, bukti penyisipan duplikat

Kode

db.educba.createIndex( { “Name” : 1 } , { unique : true } )

Keluaran

Apakah indeks mongodb harus unik?

Menggunakan > db. pendidikan. createIndex( { “Nama”. 1 ,{ unik. true} ) kami telah menerapkan batasan unik dari kunci Nama. Dalam pesan balasan kami memiliki "ok" dan detail lainnya. Sekarang mari kita coba memasukkan satu dokumen baru dan kemudian memasukkannya kembali dengan nilai yang sama. Lihat tangkapan layar di bawah ini untuk hasil yang tepat

Kode

db.educba.insert({ Name : "Sulaksh" ,  City : "Pune" })_

Keluaran

Apakah indeks mongodb harus unik?

Permintaan Pertama. db.educba.insert({ Name : "Sulaksh" ,  City : "Pune" })_

Permintaan di atas akan berhasil dimasukkan. Kemudian kami mencoba memasukkan kueri yang sama, mis. e. dokumen yang sama dengan nilai yang sama, tetapi menghasilkan kesalahan yang menyatakan, "istilah". “Pengumpulan kesalahan kunci duplikat E11000. tes. indeks pendidikan. Nama_1 dup kunci. {. \”Sulaksh\” }””. Ini membuat batasan unik kami berhasil diterapkan pada bidang Nama

Contoh #2

Kami sekarang akan menerapkan batasan nilai unik pada Kunci, yang menyimpan Nilai Email. Kami akan memperbarui dokumen kami untuk menambahkan bidang lain dengan email. Kami kemudian akan menambahkan indeks lain di bidang email, agar tidak menyimpan id email yang sama untuk banyak dokumen

Kode

db.educba.createIndex( {email : 1},{unique : true} )_

Keluaran

Apakah indeks mongodb harus unik?

Kami tidak akan mencoba menyisipkan dokumen dengan nama yang berbeda tetapi id email yang sudah ada di dokumen lain. Harapannya adalah operasi penyisipan tidak akan berfungsi dan melalui kami kesalahan nilai duplikat. Kami memiliki dokumen lain dengan nama yang sedikit berbeda. Sanket1, untuk tujuan pengujian, dan sekarang kami akan mencoba memperbarui dokumen dengan email. sanket@email. com

Kode

db.educba.update( { “Name” : ”Sanket1” } , { $set : {email : “[email protected]” }})_

Permintaan di atas akan bertujuan untuk mencari catatan dengan Nama. Sanket1 dan akan memperbarui catatan dengan menambahkan id email ke dokumen, di sini $set akan menambahkan bidang untuk dokumen

Keluaran

Apakah indeks mongodb harus unik?

Seperti yang Anda lihat pada tangkapan layar di atas, ketika kami mencoba memperbarui catatan dengan bidang Nama yang berbeda, emailnya sama dengan satu dokumen yang ada. Itu memberi kami kesalahan tulis, yang berarti terjadi kesalahan saat menulis dokumen. Kesalahan menyatakan "pengumpulan kesalahan kunci duplikat. tes. indeks pendidikan. kunci duplikat email_1”. Kesalahan menunjuk ke masalah dan membuat semuanya jelas untuk kita pahami. Seperti dalam kasus kami, email dengan nilai “sanket@email. com” digandakan, sudah disimpan, jadi tidak akan disimpan lagi karena pengindeksan unik di kolom email. Jika Anda ingin tahu, saya telah menggunakan pembaruan dengan $get untuk menambahkan bidang lain untuk catatan yang ada

Gunakan Kasus untuk contoh ini. Apakah Pendaftaran Pengguna Baru di mana kami harus memastikan bahwa satu id email tidak digunakan untuk membuat banyak akun

Kesimpulan

Menerapkan Kendala Unik akan membatasi database dari menyimpan nilai duplikat untuk kunci yang diindeks sama untuk membungkusnya. Fitur ini membantu dalam menyimpan dokumen dengan keunikan. Kami mempelajari dan memahami sintaks yang diikuti dengan cara kerjanya. Kemudian kami menerapkan batasan unik dengan contoh dan memahaminya masing-masing bersama dengan tangkapan layar

Artikel yang Direkomendasikan

Ini adalah panduan untuk MongoDB Unique. Di sini kita membahas pengantar, bagaimana cara kerja Unique dan contoh untuk pemahaman yang lebih baik. Anda juga dapat membaca artikel terkait lainnya untuk mempelajari lebih lanjut –

Apakah indeks unik?

KEY atau INDEX mengacu pada indeks non-unik normal. Nilai yang tidak berbeda untuk indeks diperbolehkan, sehingga indeks dapat berisi baris dengan nilai identik di semua kolom indeks

Apakah kolom indeks unik?

Indeks unik memastikan kolom kunci indeks tidak berisi nilai duplikat apa pun . Indeks unik dapat terdiri dari satu atau banyak kolom. Jika indeks unik memiliki satu kolom, nilai dalam kolom ini akan unik. Jika indeks unik memiliki banyak kolom, kombinasi nilai dalam kolom ini unik.

Apa perbedaan antara unik dan non

Indeks unik berbeda dari indeks tidak unik dalam menegakkan keunikan nilai atribut yang diindeks untuk objek yang dilampirkan ke indeks . Misalnya, Anda mungkin ingin mengisi objek Orang ke dalam dua indeks, yang unik pada atribut "email", dan yang tidak unik pada atribut "nama belakang".

Apa yang benar tentang indeks di MongoDB?

Indeks mendukung eksekusi kueri yang efisien di MongoDB . Tanpa indeks, MongoDB harus melakukan pemindaian koleksi, mis. e. pindai setiap dokumen dalam koleksi, untuk memilih dokumen yang cocok dengan pernyataan kueri.