MongoDB ile Birkaç Şey

Henüz yeni başladığım MongoDB maceramı buradan da paylaşmak istedim. Belki işlerin nasıl yapıldığını merak edenler vardır. Çok fazla İlişkisel veritabanı tecrübem yok. Bu nedenle sorguların SQL karşılığını yazmayacağım. Ama siz SQL ile nasıl yapılacağını anlayabilirsiniz. Açıkçası verim bakımından da karşılaştıracak kadar veritabanı konusunda tecrübeli değilim.

Öncelikle MySQL’deki “Table” kavramının karşılığı MongoDB’de “Collection”. Burdan sonra benzer bir yanları yok. MongoDB’de “Collection”lar içinde “Document”lar bulunur ve onlar da “key-value” çiftleri içerir. Örnek bir “Document” aşağıdaki gibidir.

“Document”lar çok esnek yapıya sahiplerdir. Her “key” bir dizi de içerebilir.

Ayrıca her “key” bir “Document” da içerebilir.

Her “Document” {} bloğunun içindeki kısımdır. Dizi için [] kullanırız. Bir “Document” eklendiğinde MongoDB otomatik olarak “_id” oluşturur ama istersek biz de özel bir “_id” verebiliriz.

Sorgu

Birkaç sorgu örneğiyle MongoDB’yi tanımanıza yardımcı olayım. Veritabanımızda usercollection adında bir “Collection” olsun. Sorgular için find() metodunu kullanırız. Aşağıdaki sorgu ile “username” = “onurtuna” çiftini içeren “Document”ı getirebiliriz. pretty() metodu düzgün bir görüntüleme için kullanılır.

Bu sorgunun çıktısı hemen bir yukarıdaki “Document” olacaktır. Yazı boyunca veritabanına üç adet “Document” ekledim. Şimdi bunlar arasında sorgu yaparak devam edelim. Mesela üç “Document”ta da “username” var ama sadece iki tanesi “tuna” içeriyor. Aşağıda bu iki tane “Document”ı bulan sorgu ve çıktısı bulunmakta.

Üç “Document”ın bir tanesi “email” içermiyor. Şimdi de bu “Document”ı bulalım.

Kafanızda yapı canlanmıştır. O yüzden fazla uzatmak istemiyorum. Aslında uzatamayız da çünkü çok fazla özelliği var. İlerleyen günlerde daha karmaşık sorgularla ilgili yazılar yazma planım var ama şimdilik burada kalıyorum. Sizin de ilişkisel veritabanlarıyla ilgili tecrübeniz varsa MongoDB üzerinden tartışmaktan mutluluk duyarım.