MongoDB İndeksleme: createIndex() ve dropIndex()
⚡ Akıllı Özet
MongoDB İndeksler, sorguların her kaydı taramadan belgeleri bulabilmesi için bir koleksiyonun alanlarının sıralı bir alt kümesini depolar. createIndex, getIndexes ve dropIndex yöntemleri, performans açısından kritik olan bu yapıları oluşturur, listeler ve kaldırır.

All ON XNUMX İmplant Tedavisi Nasıl Uygulanır? MongoDB Dizinler mi?
Dizinler herhangi bir veritabanında çok önemlidir ve MongoDB Bu durum farklı değil. İndekslerin kullanımıyla, sorgular gerçekleştirmek... MongoDB daha verimli hale gelir.
Eğer binlerce belgeden oluşan ve indekslenmemiş bir koleksiyonunuz varsa ve belirli belgeleri bulmak için sorgulama yapıyorsanız, o zaman böyle bir durumda MongoDB Belgeleri bulmak için koleksiyonun tamamını taramak gerekecek. Ancak dizinleriniz olsaydı, MongoDB koleksiyonda aranması gereken belge sayısını sınırlamak için bu dizinleri kullanırdı.
İndeksler, bir koleksiyonun verilerinin kısmi bir bölümünü depolayan özel veri kümeleridir. Veriler kısmi olduğundan, bu verileri okumak daha kolay hale gelir. Bu kısmi küme, belirli bir alanın veya bir alan kümesinin değerini, alanın değerine göre sıralanmış şekilde depolar.
Endekslerin Etkisini Anlamak
Giriş bölümünde indekslerin sorgular için faydalı olduğu gösterilmiş olsa da, çok fazla indeksin ekleme, silme ve güncelleme gibi diğer işlemleri yavaşlatabileceği de belirtilmiştir.
Belgeler üzerinde sık sık ekleme, silme ve güncelleme işlemleri yapılıyorsa, indekslerin de o sıklıkta değiştirilmesi gerekecektir ki bu da koleksiyon için gereksiz bir yük olacaktır.
Aşağıdaki örnek, bir koleksiyonda hangi alan değerlerinin bir dizini oluşturabileceğini göstermektedir. Bir dizin, koleksiyondaki yalnızca bir alana veya koleksiyondaki birden fazla alana dayanabilir.
Aşağıdaki örnekte, Çalışan kimliği "1" ve ÇalışanCode "AA" indeksleri, koleksiyondaki belgeleri indekslemek için kullanılır. Dolayısıyla, bir sorgu araması yapıldığında, bu indeksler koleksiyondaki gerekli belgeleri hızlı ve verimli bir şekilde bulmak için kullanılacaktır.
Dolayısıyla arama sorgusu Çalışan bazlı olsa bileCode “AA”, o belge size iade edilecektir.
Dizinler Nasıl Oluşturulur: createIndex()
Dizin oluşturma MongoDB kullanılarak yapılır createIndex yöntemi.
Aşağıdaki örnek, bir koleksiyona nasıl indeks ekleneceğini göstermektedir. "Employeeid" ve "EmployeeName" alan adlarına sahip aynı Employee koleksiyonuna sahip olduğumuzu varsayalım.
db.Employee.createIndex({Employeeid:1})
Code Açıklama:
- MKS createIndex yöntemi, belgenin “Çalışan Kimliğine” dayalı bir dizin oluşturmak için kullanılır.
- “1” parametresi, “Employeeid” alan değerleriyle dizin oluşturulduğunda bunların artan sırada sıralanması gerektiğini belirtir. Lütfen bunun, her belgeyi benzersiz şekilde tanımlayan _id alanından farklı olduğunu unutmayın. MongoDB Otomatik olarak oluşturulur. Belgeler artık _id alanına göre değil, Employeeid alanına göre sıralanacaktır.
Komut başarıyla yürütüldüğünde aşağıdaki çıktı görüntülenecektir:
Çıktı:
- numIndexesBefore: 1, komut çalıştırılmadan önce indekslerdeki alan değerlerinin sayısını gösterir. Her koleksiyonda, alan değeri olarak da sayılan _id alanı bulunur, bu nedenle numIndexesBefore 1'dir.
- numIndexesAfter: 2 ifadesi, komut çalıştırıldıktan sonra indekslerdeki alan değerlerinin sayısını gösterir.
- “ok: 1” çıktısı, işlemin başarılı olduğunu ve yeni indeksin koleksiyona eklendiğini belirtir.
Yukarıdaki kod, tek bir alan değerine dayalı bir dizin oluşturmayı göstermektedir, ancak birden fazla alan değerine dayalı bir dizin de oluşturulabilir. Aşağıdaki örnek, bunun nasıl yapılabileceğini göstermektedir:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
`createIndex` metodu artık birden fazla alan değerini dikkate alıyor; bu da dizinin "Employeeid" ve "EmployeeName" alanlarına göre oluşturulmasına neden oluyor. `Employeeid:1` ve `EmployeeName:1` ifadeleri, dizinin bu iki alan değeri üzerinden oluşturulması gerektiğini belirtir; `:1` ise artan sıralamayı gösterir. Bu, bileşik dizin olarak bilinir.
İndeksleri Bulma Yöntemi: getIndexes()
Bir dizini bulmak MongoDB kullanılarak yapılır Dizinleri al Bu yöntem, aşağıdaki örnekte nasıl yapılabileceği gösterilmektedir:
db.Employee.getIndexes()
GetIndexes yöntemi bir koleksiyondaki tüm dizinleri bulmak için kullanılır.
Komut başarıyla yürütüldüğünde aşağıdaki çıktı görüntülenecektir:
Çıktı:
Çıktı, koleksiyonda iki dizin olduğunu gösteren bir belge döndürür: _id alanı ve Employeeid alanı. :1 ifadesi, dizindeki alan değerlerinin artan sırada oluşturulduğunu gösterir.
İndeksleri Nasıl Silebilirsiniz: dropIndex()
Bir dizini kaldırma işleminde MongoDB kullanılarak yapılır düşüş indeksi Bu yöntem, aşağıdaki örnekte nasıl yapılabileceği gösterilmektedir:
db.Employee.dropIndex({Employeeid:1})
`dropIndex` metodu, dizinden kaldırılması gereken alan değerlerini alır.
Komut başarıyla yürütüldüğünde aşağıdaki çıktı görüntülenecektir:
Çıktı:
- nIndexesWas: 3, komut çalıştırılmadan önce indekslerdeki alan değerlerinin sayısını gösterir. Her koleksiyonda, alan değeri olarak da sayılan _id alanı bulunur.
- ok: 1 çıktısı işlemin başarılı olduğunu belirtir ve “Employeeid” alanının indeksten kaldırıldığını belirtir.
Koleksiyondaki tüm indeksleri aynı anda kaldırmak için dropIndexes komutu kullanılabilir. Aşağıdaki örnek bunun nasıl yapılabileceğini göstermektedir:
db.Employee.dropIndexes()
dropIndexes yöntemi, _id dizini dışındaki tüm dizinleri bırakacaktır.
Komut başarıyla yürütüldüğünde aşağıdaki çıktı görüntülenecektir:
Çıktı:
- nIndexesWas: 2 ifadesi, komut çalıştırılmadan önce indekslerdeki alan değerlerinin sayısını gösterir.
- Her koleksiyonun, alan değeri olarak da sayılan ve silinmeyecek olan _id alanı bulunur. MongoDBBu mesaj tam olarak bunu gösteriyor.
- ok: 1 çıkışı işlemin başarılı olduğunu belirtir.










