.Net Core MongoDB Kullanımı

Posted by

Merhaba arkadaşlar, bu yazımda sizlere .Net Core MongoDB Kullanımı konusundan bahsedeceğim.

MongoDB veri tabanını kullanarak kayıt listeleme, filtreleme, ekleme, silme, güncelleme işlemlerini yapacağız. MongoDB için kurulumlarımızı önceki yazılarda bahsetmiştik. Bu yazıda da hangi paketi kullanacağız, yüklediğimiz paket ile MongoDB nesnelerimizi nasıl kullanacağız kısaca değineceğiz ve sonrasındaki yazılarda da CRUD işlemlerini yapıyor olacağız.

Öncelikle .Net Core projemizde MongoDB ile ilgili işlemler yapmak istiyorsak Nuget Package Manager üzerinden MongoDB.Driver paketini yüklüyoruz. Bu paketi yükledikten sonra MongoClient nesnesini kullanacağız. MongoClient nesnemizi oluşturduktan sonra buradaki metotlardan GetDatabase metodu ile veri tabanımızı seçiyor olacağız. Collection işlemleri yani tablo işlemleri için de Collection metotlarını kullanıyor olacağız.

MongoClient nesnesi oluştururken ConnectionString bilgimizi vermemiz gerekiyor.

IMongoClient mongoClient = new MongoClient("mongodb://localhost:27017");

Sonrasında veri tabanımız için mongoClient üzerinden GetDatabase metodunu kullanmamız gerekiyor.

IMongoDatabase db = mongoClient.GetDatabase("test-mongo-db");

GetDatabase metodumuz bize IMongoDatabase tipinde bir geri dönüş sağlar.

Oluşturulacak olan tablomuz için bir sınıf oluşturuyoruz. Product isminde bir sınıf oluşturuyoruz.

public class Product
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }
	
    public string Name { get; set; }
}

Product sınıfında Id alanı için eklediğimiz iki adet Attribute [BsonId] ve [BsonRepresentation(BsonType.ObjectId)] MongoDB üzerinde Id alanı için bir Unique değer oluşturacaktır. MongoDB içinde tanımlaması ObjectId diye geçer.

İhtiyacımız olan tabloya da erişmek için GetCollection<T> metodunu kullanmamız gerekiyor.

IMongoCollection<Product> collection = db.GetCollection<Product>("products");

Products tablomuza erişim sağlamış olduk ve bu collection üzerinden CRUD işlemlerimizi gerçekleştirebiliriz.

Umarım faydalı olur.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir