Mongo Db Kullanımı

03/01/2026 23:00:34
  • 27 min okuma
Mongodb .Net Kullanımı, C# mongodb kullanımı.

Mongodb Nedir

Mongodb günümüzde oldukça popüler bir hale gelen mongodb nosql bir veritabanıdır. MongoDB’de her kayıt bir doküman olarak ifade edilir. Ve bu dökümanlar json formatı şeklinde saklanır. Daha önce ilişkisel veritabanlarıyla ilgilenenlerin bildiği table yapısını burada collection, row yapısını document, column yapısını ise field alır.

.Net Core Mongodb Kullanımı

Öncelikli olarak Nuget aracılığı ile iki adet Kütüphanenin eklenmesi gerekmektedir.

 

Yukarıda belirtilen paketler yüklendikten sonra appsetting.json dosyamızda veritabanı adı ve conection stringi aşşağıdaki gibi bir yapıdan çağırmamız gerekmektedir.


Normalde Mongodb kullanımı için birçok yol mevcuttur lakin bunun kullanımı için birçok kaynakta veri sorgulaması için ayrı bir sınıf oluşturulduğunu göreceksiniz. Lakin Bunu neden generic yapıda geliştirmiyoruz ki.

Böylelikle de karmaşık sınıf yapılarından kurtulup repository  tasarım deseninde uyguluyor olacağız.

İlk olarak Entitiylerimizi oluşturmadan önce base bir sınıf oluştuamamız gerekiyor ki her bir nesnemiz generic yapıya uygun hale gelebilsin.


Sınıflarımızı buradan miras aldığımız takdirde mongodb kullanımı için uygun hale gelecektir.

Örnek


Böylelikle de generic yapımızda sadece MongoBaseEntity Sınıflarından miras alınan nesnelerimiz için veritabanı işlemleri yapılacaktır.

Öncelikli Olarak biri IGenericRepository adında bir interface oluşturalım.


T Nesnemiz bizim için miras alınan nesne olacaktır. Peki interface yani abstract sınıfımız oluşturduk peki concrete sınıfımız ne olacak


İnterfacemizi miras alıp implemete ettikten sonra Collection'umuz Sınıfımızn adını alacak şekilde ayarlama yapıyoruz bunu Entity sınıflarımızda da belirtebilirdik ama hem kod karmasasına sebeb olur hemde kod fazlalığına sebeb olup ayriyeten de solid prensiplerine aykırı bir durum oluşturur.  Son olaraksa bunu  dependency inejction araclıği ile containerimiza her çağrıldığında eklecek şekilde program.cs dosyamıza 


Bu şekilde değişken biir tip olduğunu belirterek çağırmamız gerekmektedir. Bu kod basit mantıl olup labda fonksiyonları ile güncellenebilir hata ayıklama mekanızmaları eklenip güncellemeye açık bir yapıdır. 

Peki Hocam Biz Ekstra İşlem Gerektiren Yapılarda Ne Yapmamız Gerekmekte.

Bildiğimiz üzere IGenerirRepository belirli methodları içerdiğinden ötürü dinamik sınıflar meydana getirebiliriz ve kalıtım almamız gayette yeterli olmaktadır.



Tıpkı Burada Olduğu gibi peki concrete sınıfı nasıl oluşturmamız gerek derseniz o Hem IBlogRepositoryi Miras alacak hemde GenericRepositoryi miras alması yeterli olacktır.


Burada olduğu üzere Generic yapımızda _Collection public olduğundan ötürü miras alınan sınıfta kullanımına izin verilir.

ve böylelikle custom methodlar yazabiliriz. Bu kodlar genel projelerimde kullandığım kodlardır ve her geçen yeni projede iyileştirilmeler yapılmaktadır.

;

Coded By Mehmet Kelleli