MongoDB'u kullanmanın ilk adımı, temel MongoDB kavramlarını ve veri modelini (veri yapısı) anlamak, verinin nasıl depolandığını bilmektir. Aslında, MongoDB, MySQL'e çok benzer, bu yüzden MySQL'i bilen herkes MongoDB'yi öğrenirken herhangi bir zorluk yaşamayacaktır.

MongoDB Temel Kavramları

Veritabanı

MongoDB veritabanı MySQL veritabanı ile aynıdır.

Koleksiyon

Bir MongoDB koleksiyonu, MySQL'deki tablo kavramına benzer şekilde belge verilerinin bir koleksiyonunu ifade eder.

Belge

Bir MongoDB belgesi, MySQL tablosundaki bir veri satırına benzer şekilde, çoklu alanlardan oluşan JSON yapılı veri, MongoDB'de belge yapısını çok esnek hale getirir.

Alan

Bir MongoDB belge alanı, MySQL tablosundaki alan kavramına benzer şekilde, depolanacak belirli veriyi temsil eder ve her alanın kendi veri tipi bulunur.

İndeks

MongoDB indeksi, sorgu verimliliğini artırmak amacıyla MySQL indeksi ile benzerdir.

Birleştirme (Aggregation)

MongoDB birleştirme kavramı, MySQL'deki Gruplama/Yeniden Sayma/Toplam birleştirme analizine benzer şekilde, veri istatistik analizi için kullanılır.

MongoDB ve MySQL Kavramlarının Karşılaştırılması

MySQL MongoDB
Veritabanı Veritabanı
Tablo Koleksiyon
Satır Belge
Sütun Belge Alanı
İndeks İndeks
Birleştirme (ör. group by) Birleştirme

Temel olarak, MongoDB'nin kavramları MySQL ile eşleştirilebilir, bu yüzden MongoDB, ilişkisel veritabanlarına (NoSQL) en benzer olmayan veri tabanıdır.

MongoDB Belge Verisi

Bir belge, sadece kendi veri tipi olan çoklu alanlardan oluşan bir JSON yapısıdır. MongoDB ile geliştirme yaparken, odak noktası genellikle belge yapısını nasıl tasarlayacağınızdır, MySQL kullanımının merkezi gibi tablo yapılarını tasarlamakla benzerlik gösterir.

MongoDB belge verisi örneği:

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

Bu herhangi bir derecede iç içe geçmiş JSON yapısı olabilir, ki bu MySQL tablo yapıları tarafından başarılamaz. _id alanı belgenin birincil anahtarı olarak hizmet eder ve belirli bir değer belirtmezseniz, MongoDB benzersiz bir değer rastgele oluşturur.

MongoDB'nin veri yapısı ve MySQL tabloları arasındaki en büyük fark, MongoDB'nin belge yapısını önceden tanımlamayı gerektirmemesidir. MongoDB ile, önceden tanımlanmış bir şema olmaksızın doğrudan JSON verisini bir koleksiyona ekleyebilirsiniz. Her seferinde MongoDB koleksiyonuna JSON verisi yazdığınızda, format farklı olabilir, alanlar isteğe bağlı olarak eklenip çıkarılabilir.

Not: MongoDB'nin belge yapısı oldukça esnek olmasına rağmen, pratik uygulamalarda, bir koleksiyon içindeki veri yapısı genellikle birbirine uygundur. Aksi takdirde, koleksiyon içinde her girişin formatı farklı ise, her seferinde alınan veri formatı bilinmediği için yönetimi kabus olacaktır.