MongoDB nedir?

MongoDB bir NoSQL veritabanıdır. Geleneksel SQL tabanlı veritabanlarından farklıdır. Neden farklı? Birincisi, SQL tabloları gibi önceden tanımlanmış bir yapıya sahip değildir. Masamızın nasıl görüneceğini önceden tanımlamamıza gerek yok. İkincisi, tablolar kullanmaz, bunun yerine JSON benzeri belgeler kullanır ve bir şema isteyip istemediğinizi seçmek size kalmıştır.

RDBMS: İlişkisel Veritabanları

NoSQL: SQL veya İlişkisel Olmayan Veritabanları veya Dağıtılmış Veritabanları Değil

NoSQL'in Faydaları:

  • Yapılandırılmamış veriler için dinamik şema. Her belgenin kendine özgü bir yapısı olabilir.
  • Şema tanımlamak isteğe bağlıdır.
  • NoSQL veritabanları yatay olarak ölçeklenebilir
  • Anahtar-değer çiftlerine sahip nesneleri kullanır. Bu nedenle, JSON veya javascript nesnelerine aşina iseniz, sizin için NoSQL'i anlamak ve kullanmak daha kolay olacaktır.
  • Hiyerarşik verileri depolamak için en uygunudur.

Bilinecek şeyler

Aşağıdaki işletim sistemi ve mongodb sürümünü kullanıyorum. Öğrenme sürecini o kadar fazla etkilemeyecek ama devam etmeden önce bilmek güzel.

  • İşletim Sistemi: Ubuntu 18.04 LTS
  • Mongodb Sürümü: 4.2.9

Kurulum

Kurulum oldukça kolaydır ve mongodb belgelerini takip edebilir ve topluluk sürümünü buradan yükleyebilirsiniz . Kurulum sırasında sizden mongodb pusulasını kurmanızı isterse, kurun. Veritabanlarınızı sezgisel bir şekilde görselleştirmenize yardımcı olacak bir GUI uygulamasıdır.

Kurulumdan alacağınız iki önemli şey şunlardır:

  • mongod: mongodb sunucusu
  • mongo: komut verebileceğimiz ve db ile oynayabileceğimiz mongo kabuğu
  • Başlangıç

    Linux'ta, mongodb'u başlatmak, terminalde birkaç komut yazmak kadar kolaydır. Öyleyse hadi yapalım;

    Mongod sunucusu başlatılıyor...

    # start server
    sudo systemctl start mongod
    
    # start server : alternative way
    sudo service mongod start
    
    # check if server running
    sudo systemctl status mongod
    
    # check if server running : alternative way
    sudo service mongod status
    
    # stop server
    sudo systemctl stop mongod
    
    # stop server: alternative way
    sudo service mongod stop

    Sunucu başlatıldıktan sonra mongo kabuğunu çalışan örnekle bağlayabiliriz. Mongo kabuğuna erişmek için aşağıdaki komutu kullanın:

    mongo

    Temel bilgiler

    Devam etmeden önce, MongoDB'yi daha iyi anlamak için bilmemiz gereken bazı önemli şeyleri açıklığa kavuşturmakta yarar olacaktır.

    Veri Tabanı

    Mongodb'de, verileri toplu bir şekilde tutmak için tek bir mongodb sunucusunda birden fazla veritabanına sahip olabilirsiniz. Örneğin, bir okul uygulaması üzerinde çalışıyorsanız, tüm koleksiyonlarınızın (sql'deki tabloya benzer) içinde bulunduğu bir okul veritabanı oluşturursunuz. Bu veritabanında öğrenci koleksiyonu, öğretmen koleksiyonu vb. Olabilir.

    Veritabanlarıyla çalışırken bilinmesi gereken yararlı bir komut şudur:

    > show dbs

    Bu komut size mongo sunucunuzda bulunan mevcut tüm veritabanlarını gösterecektir. Veritabanları arasında geçiş yapmak için şunları yazmanız yeterlidir:

    > use <database name>
    Collections - Koleksiyonlar

    Bir collection, SQL'deki bir tablo gibidir. Rekorunuzu tek bir yerde tutar. Örneğin, tüm öğrencilerin kayıtlarını saklayabileceğiniz bir öğrenci collectionu oluşturabilirsiniz. Bu kayıtlarda öğrencinin adı, yaşı, sınıfı, konuları, yüzdesi vb. Bilgileri alabilirsiniz.

    Bir koleksiyon documents tek bir yerde birden fazla tutuyor .

    İlerideki gönderilerde koleksiyonlar hakkında daha fazla tartışacağız.

    Koleksiyonlar için bilinmesi gereken bazı yararlı komutlar şunlardır: ( use <database name>bu komutları kullanmak için ile bir veritabanına geçin )

    # show all the collections in db
    > show collections
    
    # using a collections
    > db.<collection name>.find()
    Documents - Belgeler

    Belgeler, bilgilerinizi JSON benzeri biçimde tutan ana kayıtlardır.

    {
       "name": "Ash Ketchum",
       "age": 20,
       "subjects": ["Math", "Science", "History", "English"],
       "standard": 8
    }

    Bir belge oluşturmak, javascript'te bir nesne oluşturmak kadar kolaydır. Değerleri iç içe yerleştirebilirsiniz. Belgelerin içinde belge bulundurun. Dizilere, nesnelere, mantıksal değerlere, sayılara, dizelere vb. Sahip olabilirsiniz. Bu, mongodb'yi iç içe yerleştirmenin gerekli olduğu hiyerarşik veriler için iyi yapar.

    Unutulmaması gereken bir husus, belgenin yapısının katı olmamasıdır, yani tüm belgelerdeki tüm alanları tanımlamamıza gerek yoktur. Bu, mongodb'u yapılandırılmamış veriler için esnek hale getirir.

    İlerideki gönderilerde belgeler hakkında daha fazla bilgi edineceğiz.