Bu makalede, MongoDb'nin temel veri tipleri ve yapılandırılmış veri tipleri incelenmektedir String, integer, double, boolean ve date tipleri gibi temel veri tiplerinin yanı sıra Array, Object, Embedded Document ve Geospatial tiplerinin kullanımı da açıklanmaktadır Ayrıca, Collection, Document ve GridFS yapıları hakkında bilgilendirme yapılarak veritabanı yönetimi konusunda yararlı bir kaynak sunulmaktadır Index kullanımının önemi vurgulanarak, sıralama ve arama işlemlerinin daha hızlı yapılabilmesi sağlanmaktadır Javascript işlemleriyle de Array veri tiplerinin manipülasyonu açıklanmaktadır

Bu makale, MongoDb'nin temel veri tipleri olan string, integer, double, boolean ve date tiplerinin yanı sıra yapılandırılmış veri tipleri olan Array, Object, Embedded Document ve Geospatial tiplerinin de incelendiği bir incelemedir.
Ayrıca, MongoDb'de kullanılan Collection, Document ve GridFS yapıları hakkında bilgi verilecektir. Makalenin amacı, MongoDb veri tipleri ve veri yapıları hakkında detaylı bir bilgilendirme yaparak, veritabanı yönetimi konusunda yararlı bir kaynak sağlamaktır.
Temel Veri Tipleri
MongoDb, verileri farklı tiplerde tutabilen doküman tabanlı bir veritabanıdır. Bu nedenle, MongoDb'nin desteklediği temel veri tipleri değişkenlik göstermektedir. Bunlar arasında en yaygın olarak kullanılan string, integer, double, boolean ve date tipleri yer almaktadır.
String veri tipi, karakter dizilerini ifade etmek için kullanılırken, integer veri tipi tam sayıları ifade eder. Double veri tipi, ondalıklı sayıları ve boolean veri tipi de true/false değerlerini tutar. Date veri tipi ise tarih ve saat bilgisini tutar.
MongoDb'de veri tiplerinin kullanımı oldukça esnektir. Örneğin, bir String veri tipi içinde bir dizi ya da object yapısı eklenebilir. Bu sayede, veriler daha yapılandırılmış hale getirilebilir.
Temel veri tipleri hakkında detaylı bilgi edinildikten sonra, yapılandırılmış veri tipleri incelenmeye devam edilebilir.
Yapılandırılmış Veri Tipleri
MongoDb veritabanı, yapılandırılmış veri tiplerini destekleyerek verilerin daha düzenli bir şekilde yönetilmesini ve kullanılmasını sağlar. Array, Object, Embedded Document ve Geospatial tipleri yapılı verilerin yönetimi için en sık kullanılan tiplerdir.
Array veri tipi, benzer verilerin birden fazla öğe ile saklanmasını sağlar. Örneğin, bir kullanıcının favori renkleri bir array içinde saklanabilir. Arraylerin index kullanımı, öğelere daha hızlı erişim sağlar.
Object veri tipi, birden fazla özelliğin bir nesne olarak saklanmasını sağlar. Örneğin, bir kullanıcının adı, soyadı, e-posta adresi ve yaşının birbirinden bağımsız özellikler olarak saklanabilir. Object veri tipi, içinde Embedded Document tipleri kullanılarak daha karmaşık verilerin yönetimi için de kullanılabilir.
Embedded Document, bir document içindeki alt document yapısını ifade eder. Örneğin, bir kullanıcının profil fotoğrafı gibi küçük dosyalar Embedded Document olarak saklanabilir. Bu sayede, dosyaların ana documenttan ayrılmadan saklanması ve yönetilmesi mümkün olur.
Geospatial veri tipi ise, belirli bir konum verisinin saklanması için kullanılır. Örneğin, bir kullanıcının adresi ve koordinatları Geospatial veri tipi içinde saklanabilir.
Array Veri Tipi
MongoDb'de Array veri tipi, bir belge içinde birden fazla değer tutmak için kullanılır. Bir Array, bir veya daha fazla eleman içerebilir ve aynı zamanda başka bir Array'i de içerebilir. Bu veri tipinin kullanımı genellikle, benzer türdeki birden fazla verinin aynı belge içinde saklanmasını gerektiren durumlarda kullanılır.
Daha özel olarak, Array veri tipi şu amaçlar için kullanılabilir:
- İlişkili verileri tek bir belge altında tutmak
- Birden fazla değeri aynı alanda gruplandırmak
MongoDb'de Array veri tipi, şöyle tanımlanır:
{ field: [value1, value2, ...] }
Burada 'field', alanın adını, 'value1' ve 'value2' ise Array'in her bir elemanını temsil etmektedir. Array elemanları, aynı belgenin içinde farklı tiplerde olabilir. Örneğin, bir Array içinde hem string hem de integer değerler bulunabilir.
Indexli Arrayler, belirli sıralamaları olan verilerin saklanmasında sıkça kullanılır ve Arrayler üzerinde MongoDB'de birçok işlem yapılabilir. Ayrıca Arrayler, Javascript işlemleri için de kullanışlıdır.
Örneğin, bir kullanıcının sevdiği renklerin listesini tutan bir Array şöyle olabilir:
{ name: 'John Doe', favorite_colors: ['red', 'green', 'blue'] }
Bu örnekte, 'favorite_colors' adlı bir Array belge içinde kullanılmakta ve her listedeki elemanı temsil etmektedir.
Indexli Arrayler
MongoDb'deki Array veri tipinde index kullanımı oldukça önemlidir. Index kullanarak, verilerin hızlı bir şekilde bulunması ve sorgulanması mümkün olur. Ayrıca, index kullanımı ile birlikte veri tabanının boyutu da büyük oranda azaltılabilir. Index kullanılmadığı durumlarda, veri tabanı büyük boyutlara ulaşabilir ve sorguların uzun sürelerde sonuçlanması gibi sorunlarla karşılaşılabilir.
Index kullanımı ile birlikte, sıralama ve arama işlemleri de daha hızlı bir şekilde gerçekleştirilebilir. Özellikle, büyük verilerin sorgulanması gerektiği durumlarda index kullanımı zorunlu hale gelir. Index oluşturulurken, hangi alanın indexlenmesi gerektiği seçilir ve bu şekilde sorgular hızlandırılır.
- Index kullanımının en büyük avantajları şunlardır:
- Daha hızlı sorgu performansı
- Veri boyutunun azaltılması
- Sıralama ve arama işlemlerinin hızlanması
Index kullanımı ile birlikte, veri tabanının boyutunun azaltılması da mümkün olur. Bu sayede, verilerin yedeklenmesi ve yönetilmesi daha kolay hale gelir. Index oluşturulurken, hangi alanların indexlenmesi gerektiği detaylı bir şekilde incelenmeli ve bu şekilde veri tabanının boyutu azaltılmalıdır.
Javascript İşlemleri
MongoDb'de Array veri tipinde Javascript işlemleri oldukça önemlidir. Verileri manipüle etmek için kullanılır. İşlemler sırasında $push, $pull, $addToSet, $pop gibi yöntemler kullanılabilir. Örneğin, $push yöntemi ile bir Array'e yeni bir eleman eklenebilir. $pull yöntemi ile belirli bir eleman Array'den çıkarılabilir. $addToSet yöntemi ile bir eleman Array'e eklenebilir ancak Array'de aynı elemandan varsa eklenmez. $pop yöntemi ile de son eleman ya da ilk eleman Array'den çıkarılabilir. Bu yöntemlerin kullanımı örneklendirmelerle daha iyi anlaşılabilir.
Object Veri Tipi
MongoDb'de Object veri tipi, belirli bir alanın birden fazla alt alanı olan verilerin yönetimi için kullanılır. Object veri tipi, tek başına veri olarak saklanmaz, bir Document yapısı içinde kullanılır. Object veri tipi kullanırken, alt alanların isimleri belirlenir ve değerleri de verilir. Veri tipi olarak string, int, boolean gibi temel veri tipleri kullanılabilir.
Örneğin, bir ürünün detayları saklanırken, ürünün renk, boyut gibi alt alanları Object veri tipi ile tanımlanabilir. Böylece, her ürünün detaylarını ayrı ayrı yönetmek yerine, daha düzenli ve anlaşılır bir yapı oluşacaktır.
Embedded Document İşlemleri
Object veri tipindeki Embedded Document, belirli bir Collection içindeki belirlenen dokümanlara eklenen belirli bir dokümandır. Bu doküman, ana dokümanın belirli bir alanında saklanır ve ona bağlıdır. Embedded Document'e atıfta bulunmak için, ana dokümanın alanının adı kullanılır.
Embedded Document işlemleri, bir Embedded Document'i eklemeyi, güncellemeyi veya silmeyi içerir. Embedded Document'i eklerken, ana dokümanın alan adı ile birlikte belirli bir doküman eklenir. Embedded Document'i güncellemek için, ana dokümanın alan adı ve Embedded Document anahtarına göre güncelleme yapılır. Embedded Document'i silmek için, ana dokümanın alan adı ve Embedded Document anahtarına göre silinir.
Embedded Document işlemleri, verinin daha yönetilebilir ve organize edilebilir hale getirilmesine yardımcı olabilir, ancak kullanımı fazla olduğunda performans sorunlarına neden olabilir. Bu nedenle, büyük veri kümelerinde Embedded Document kullanımı dikkatlice yönetilmelidir.
Geospatial Veri Tipi
Geospatial veri tipi, coğrafi konum verileri ile çalışır ve bu sayede konum verilerinin depolanması, sorgulanması ve analizi sağlanır. Geospatial veri tipi, iki boyutlu yüzey analizini, verilerin haritalanmasını ve yeniden boyutlandırılmasını sağlar.
MongoDb, Geospatial veri tipi için iki ana geometri türü sunar: Point ve Polygon. Point tipi tek bir noktanın konumunu depolamak için kullanılırken, Polygon tipi çokgen alanları tanımlamak için kullanılır. Bu iki geometri tipi, GeoJSON ve Well-Known-Text (WKT) gibi standart JSON formatlarında depolanabilir.
Ayrıca, MongoDb Geospatial sorgulama dilini de destekler. Bu dil, verileri konum, mesafe, alan vb. özelliklerine göre sorgulamak için kullanılır. Veri tipleri, sorgulanabilir ve izlenebilir yolları işaretlemek, çevresel analiz yapmak, konum ve mesafe hesaplamaları yapmak gibi işlemler için kullanılabilir.
Geospatial veri tipleri, coğrafi konum verilerinin depolanması ve işlenmesinde oldukça kullanışlıdır. MongoDb'nin bu özelliği sayesinde, coğrafi verileri olan uygulamalar kolayca yönetilebilir.
Veri Yapıları
Veri yapıları, MongoDb'de otomatik olarak oluşturulabilecek data kümeleridir. Bu yapılar, belirli bir türdeki verilerin depolanıp yönetilmesine olanak tanır. MongoDb'de kullanılan üç temel veri yapısı olan Collection, Document ve GridFS yapıları hakkında bilgi verilecektir.
Collection yapısı, MongoDb'de kullanılan verilerin en düşük yürütme birimidir. Bir veritabanı içerisinde birden fazla collection oluşturmak mümkündür. Collection yapısının kullanımı ve özellikleri incelenecektir.
Document yapısı, MongoDb'deki collection'un içinde yer alan bir dökümandır. Yani belirli bir collection içinde yer alan her bir veri, document yapısına uygun olarak depolanır. Document yapısının kullanımı ve özellikleri hakkında bilgi verilecektir.
GridFS yapısı, büyük boyutlu dosyaların MongoDb'de yönetilmesi için kullanılır. GridFS yapısı, dosyaları küçük parçalara bölerek depolama yapar. GridFS yapısı ve büyük boyutlu dosyaların yönetimi detaylı bir şekilde incelenecektir.
Collection Yapısı
MongoDb'deki Collection yapısı, verilerin gruplandırılması için kullanılan bir yapıdır. Her bir Collection, belirli bir veri türüne veya konuya göre ayrılmış belgeleri içerir. Collection yapısı, verilerin daha iyi organize edilmesini ve daha hızlı erişilebilir hale getirilmesini sağlar.
Collection yapısı içindeki belgeler, birbirinden farklı yapıda olabilirler. Yani, her belge kendi alanlarını ve veri tiplerini içerebilir. Collection'da yer alan belgeler, birbirleriyle bağımsız olarak tutulur ve farklı boyutlardaki verileri depolayabilecek kadar esnek bir yapıya sahiptirler.
Ayrıca, Collection yapısı bir veya daha fazla index içerebilir, bu da özellikle büyük veri setlerinde arama işlemlerini büyük ölçüde hızlandırır. Index düzgün kullanıldığında, belirli bir kriterle arama yapmak daha hızlı olacaktır.
Document Yapısı
MongoDb'deki Document yapısı, bir MongoDB veritabanında düzenlenmiş olan verilerin temel yapı taşıdır. Document, gelmiş geçmiş en basit veri yapısının anahtar-değer çiftlerinden oluşan tek bir veri parçasıdır. Birkaç anahtar-değer çifti içerebileceği gibi binlerce hatta milyonlarca anahtar-değer çifti de içerebilir. Document yapısı, bir Collection içinde Birden fazla Document barındırabilir.
Bir document içindeki anahtar-değer çiftleri Mongodb'deki bson (Binary JSON) formatında saklanır. BSON, JSON'a benzer bir veri serializasyon biçimidir ve JSON'dan daha verimlidir, Bingon olarak da bilinir. BSON, büyük veri dosyalarında ve XML yerine daha küçük, daha verimli veri formatlarına ihtiyaç duyulan yerlerde kullanılır.
Bir document yapısında sıralama önemsizdir, çünkü anahtar-değer çiftleri sözlük olarak (örneğin Python sözlükleri gibi) depolanır ve bu nedenle verilerin doğru bir şekilde saklanmasını sağlar. Bu nedenle, Document yapısı, belirli bir düzenleme veya yapı zorlamadan verileri depolamanın ideal bir yolu olarak düşünülebilir.
Örneğin, bir müşteri bilgi veritabanında, belirli bir müşteri için ad, soyadı, adres, telefon numarası, e-posta açıklamaları, siparişleri vb. için anahtar-değer çiftleri kullanılabilir. Ayrıca, farklı müşteriler için farklı sayılarda anahtar-değer çiftleri eklenebilir.
Bir document yapısı, dinamik bir yapısı olduğundan, içindeki veri modelinde değişiklik yapma ihtiyacı olduğunda kolayca yapılandırılabilir. Bu, bir document yapısı kullanarak, hızlı bir şekilde büyüyen bir veritabanında veri bütünlüğünü ve konsistansını koruyabilme avantajını sağlar.
GridFS Yapısı
GridFS, MongoDb veritabanında büyük boyutlu dosyaların depolanması için tasarlanmış bir yapıdır. GridFS, büyük boyutlu dosyaları küçük parçalara ayırır ve bu parçaları ayrı koleksiyonlarda saklar. Bu sayede, büyük boyutlu dosyaların yönetimi daha kolay hale gelir.
GridFS, MongoDb'nin standart veri yapısı olan Collection ve Document yapısına benzemez. GridFS, büyük boyutlu dosyaları daha küçük parçalara böler ve bu parçaları "chunks" koleksiyonunda saklar. Dosyanın genel bilgileri ise "files" koleksiyonunda saklanır.
GridFS yapısı, özellikle web uygulamalarında çok fazla kullanılır. Örneğin, bir web uygulamasında kullanıcılar tarafından yüklenen veya indirilen büyük boyutlu dosyaları kaydetmek gerektiğinde GridFS yapısı kullanılabilir. Bu sayede, büyük boyutlu dosyalar daha kolay bir şekilde yönetilebilir.
GridFS yapısı, MongoDb'de büyük boyutlu dosyaların depolanması için kullanılan en etkili yöntemlerden biridir. Ancak, GridFS yapısının kullanımı bazı durumlarda kendine özgü zorluklar da çıkartabilir. Bu nedenle, büyük boyutlu dosyaları yönetmek için farklı yöntemler de kullanılabilir.