MongoDB Sütun Adı Değiştirme – Change FieldName

Marhabalar, bu yazı biraz kısa olacak ancak pek çok kişinin işine yarayabileceğini tahmin ettiğim bir not mahiyetinde olsun.

MongoDB konusunda daha önce farklı farklı paylaşımlar ve makaleler yayınlamış idim. Bu sefer de mongodb’de bir alanın ismini değiştirmeyi göstereceğim. MSSQL gibi sql teknolojilerde fieldname değiştirmek olarak da aratabileceğiniz bu konu mongodb gibi nosql teknolojilerde de mümkün elbette. Örneğin “name_surname” şeklinde açmış olduğunuz bir alan olduğunu var sayarsak, bir süre sonra veya projenizi canlıya almadan hemen önce bu alanın ismini değiştirmek gibi bir gereksiniminiz olabilir.

Şu notu da buraya yazmakta fayda var; NoSQL teknolojilerde genelde kayıtlar document base olarak yani döküman tabanlı olarak tutulduğu için illa bu alanın ismini değiştirmeniz de şart değil. Yeni alanı yazılımınızdaki sınıfınıza ekleyerek de gönderebilirsiniz. Ancak sade ve tekil bir görünüm ve index kolaylığı için böyle bir işlem yapmanız gerekse bile bunu yapmak da gayet kolay. Kodu kısaca aşağıda belirtiyorum. Hemen altında da kısaca açıklayacağım.

db.getCollection('CollectionAdı').update({}, {$rename:{"EskiAlanınTamAdı":"YeniAlanınTamAdı"}}, false, true);​

Gördüğünüz gibi buradaki “db.getCollection(‘CollectionAdı’)” kısmında öncelikle koleksiyonumuzu seçiyoruz. Hemen ardından “.update({},” yazıp, içerikte bir şey değiştirmeyeceğimizi “{}” ile belirtip geçtikten sonra “, {$rename:{“EskiAlanınTamAdı”:”YeniAlanınTamAdı”}}” alanı ile mevcut alan ismini veriyor ve hangi isim ile değiştirmek istiyor isek onu da “YeniAlanınTamAdı” diye belirttiğim kısma yazıyoruz ve işlemimiz bu kadar.

Sonrasında F5 ile veya execute butonuna tıklayarak kodumuzu çalıştırmış oluyoruz.

Burada altını çizmek istediğim tek nokta, eğer önceden indexlenmiş bir alanda bu değişikliği yapacak isek, bu işlemin öncesinde indexi kaldıralım ve işlem sonrasında indeximizi tekrar oluşturalım. Problemimiz böylece çözülmüş olacaktır.

Herkese iyi çalışmalar… 🙂

0 0 votes
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments