MongoDB, NoSQL veritabanı çözümünün öncülerinden biridir JSON belgeleri temelli olup, yüksek ölçeklenebilirlik ve hızlı okuma/yazma işlemleri sunar MongoDB nedir, özellikleri nelerdir? İşte cevapları burada!
MongoDB, NoSQL veritabanı yönetim sistemi olarak karşımıza çıkar. NoSQL sistemleri, SQL veritabanlarının aksine tablolardan oluşmaz. Bunun yerine dokümanlardan, grafiklerden veya anahtar-değer çiftlerinden oluşabilen veri yapılarına sahiptir.
MongoDB, hızlı ve ölçeklenebilir bir veritabanı çözümüdür. Büyük veri işlemek için ideal bir seçenek olan MongoDB, kolay kullanımlı ve açık kaynak kodlu bir yazılımdır.
Verilerin saklanması, MongoDB'de collecion ve document olarak adlandırılan yapılar kullanılarak gerçekleştirilir. Bu yapının şeması dinamik olabilir ve gerektiği gibi değiştirilebilir.
Uygulamalar, MongoDB veritabanı ve Node.js gibi başka bir platform ile kullanılabilmektedir. Bunun yanı sıra, MongoDB bulut tabanlı çözümler sunar ve AWS veya Azure üzerinde hizmetleri barındırılır.
CRUD Nedir?
CRUD, Create, Read, Update ve Delete kelimelerinin baş harflerinin birleştirilmesiyle oluşan bir kavramdır ve veritabanı yönetiminde sıkça kullanılır. CRUD işlemleri veritabanında yapılacak temel işlemleri ifade eder.
CRUD İşlemi | Açıklama |
---|---|
Create (Oluşturma) | Yeni bir veri oluşturma işlemidir. |
Read (Okuma) | Mevcut verileri görüntüleme işlemidir. |
Update (Güncelleme) | Mevcut verilerin güncellenmesi işlemidir. |
Delete (Silme) | Mevcut verilerin silinmesi işlemidir. |
Bir veritabanı yönetim sistemi, bir programlama dilindeki veri türlerini veritabanı nesnelerine dönüştürebilir ve veritabanını bu nesnelerle yönetebilir. CRUD işlemleri bu nesnelerin oluşturulması (Create), okunması (Read), güncellenmesi (Update) ve silinmesi (Delete) işlemlerini ifade eder. Bu işlemler veritabanının temel işlemleridir.
Temel CRUD İşlemleri Nelerdir?
Temel CRUD işlemleri birçok veritabanı yönetim sistemi için vazgeçilmez olarak kullanılır. CRUD, create (oluşturma), read (okuma), update (güncelleme) ve delete (silme) işlemlerinin kısaltmasıdır ve bir veritabanının temel fonksiyonlarını içerir. Bu işlemler verilerin yönetilmesinde büyük ölçüde katkıda bulunur. Peki, MongoDB'de CRUD işlemleri nasıl gerçekleştirilir?
İlk olarak, create işlemiyle başlayalım. MongoDB'de yeni veri ekleme işlemi oldukça kolaydır. InsertOne veya InsertMany metotları kullanılarak tek bir doküman veya birden fazla doküman eklenebilir. InsertOne metodu, tek bir doküman eklemek için kullanılır. Bu metot bir döküman ekler ve eklenen dokümanın ID'sini geri döndürür. InsertMany metodu ise birden fazla doküman eklemek için kullanılır ve eklenen dokümanların ID'leri bir dizi halinde geri döndürülür.
Okuma işlemine geldiğimizde, FindOne ve Find metotları kullanılarak özelleştirilmiş sorgularla mevcut verileri görüntüleyebiliriz. FindOne metodu bir dokümanı döndürürken, Find metodu birden fazla dokümanı bir dizi halinde geri döndürür.
Güncelleme işlemi oldukça önemlidir. MongoDB'de UpdateOne ve UpdateMany metotları kullanılarak tek bir doküman veya birden fazla doküman güncellenebilir. Bu metotlar belirli bir kritere göre dokümanların güncellenmesini sağlarlar. Filtreleme işlemleri, belirli bir kriteri karşılayan verilerin güncellenmesi için kullanılan metotlar arasındadır.
Son olarak, delete işlemi ile verilerin silinmesi sağlanır. MongoDB'de DeleteOne ve DeleteMany metotları kullanılarak tek bir doküman veya birden fazla doküman silinebilir. Bu metotlar da filtreleme işlemlerinden yararlanır ve belirli bir kritere göre doküman silinir.
Bu temel CRUD işlemleri, MongoDB'nin esnekliğine ve kolay kullanımına katkıda bulunur. Verilerin güvenli, hızlı ve doğru bir şekilde yönetilmesini sağlarlar. CRUD işlemlerini daha iyi anlamak için kendi uygulamanızda denemeniz çok önemlidir.
Create İşlemi
Create İşlemi Nedir?
Create, MongoDB'de yeni veri eklemek için kullanılan bir işlemdir. Bu işlem, veritabanına yeni bir doküman ekleyerek gerçekleştirilir. MongoDB, bu işlemi gerçekleştirmek için çeşitli metotlar sunmaktadır. Bu metotlar, dokümanların tek veya çoklu olarak eklenebilmesini sağlar.
InsertOne Kullanımı
InsertOne, MongoDB'de tek bir dokümanı veri tabanına eklemek için kullanılan metoddur. Bu metot, veritabanında yeni bir kayıt oluşturmak ve veri tabanına kaydetmek için kullanılabilir. InsertOne ile bir doküman eklemek için kullanılan örnek kod parçası aşağıdaki gibidir:
Parametre | Açıklama |
---|---|
document | Eklenmek istenen dokümanı içeren bir JSON nesnesi |
InsertMany Kullanımı
InsertMany, MongoDB'de birden fazla dokümanı aynı anda veri tabanına eklemek için kullanılan metoddur. Bu metot, veritabanında yeni kayıtlar oluşturmak ve veri tabanına kaydetmek için kullanılabilir. InsertMany ile birden fazla doküman eklemek için kullanılan örnek kod parçası aşağıdaki gibidir:
Parametre | Açıklama |
---|---|
documents | Eklenmek istenen dokümanları içeren bir JSON arrayi |
Create İşlemi Nasıl Yapılır?
Create işlemi yapmak için, kullanılan metotlara ve özelliklerine hakim olmak gerekir. InsertOne ile tek bir doküman, InsertMany ile birden fazla doküman MongoDB veritabanına eklenebilir. Yeni veri ekleme işlemi gerçekleştirilirken, dokümanların yapısı doğru bir şekilde oluşturulmalı ve metotların doğru parametreleri kullanılmalıdır.
InsertOne
MongoDB üzerinde tek bir doküman ekleme işlemi yapmak oldukça kolaydır. Bu işlemi yapmak için kullanılan metot InsertOne'dır. InsertOne metodu bir doküman objesi alır ve bu objeyi belirtilen koleksiyona ekler. Örneğin; mycollection isimli bir koleksiyona yeni bir doküman eklemek istiyorsak, aşağıdaki Örnek 1'deki gibi bir kod kullanabiliriz:
db.mycollection.InsertOne({ name: "Ahmet", age: 35 })
Yukarıdaki kodda mycollection isimli koleksiyona yeni bir doküman eklenmiştir. Yeni eklenen dokümanın alanları name ve age olup, bu alanlara sırasıyla "Ahmet" ve 35 verileri atanmıştır.
Eğer yeni bir doküman eklerken doküman ID'si belirtmek isterseniz, aşağıdaki Örnek 2'deki gibi bir kod kullanabilirsiniz:
db.mycollection.InsertOne({ _id: ObjectId("615dcc4b69d3cfff0713822d"), name: "Mehmet", age: 27})
Yukarıdaki kodda _id alanı özellikle belirtilmiştir. Bu alanı belirtmek istemeyenler için MongoDB otomatik olarak bir ID oluşturacaktır. Bu sayede yeni eklenen dokümanın benzersiz bir kimliği olacaktır.
InsertOne metodu kullanılarak eklenen dokümanların sonradan güncellenmesi veya silinmesi de mümkündür. Bunun için UpdateOne veya DeleteOne metotları kullanılabilir.
InsertOne metodu, tek bir doküman ekleme işlemi yaparken InsertMany metodu ise birden fazla doküman ekleme işlemi yapar. InsertMany metodu, eklenmek istenen dokümanların bir dizi olarak belirtilmesi gerekmektedir.
InsertOne metodu hakkında örnek kodlarımızı inceledik. Sıradaki işlemimiz MongoDB'de mevcut verilerin okunmasıdır.
InsertMany
InsertMany, MongoDB'de birden fazla dokümanı tek seferde eklemek için kullanılan bir metottur. Bu işlem sayesinde tek tek ekleme işlemi yapmak yerine, daha hızlı ve verimli bir şekilde çok sayıda dokümanı veritabanına ekleyebilirsiniz.
InsertMany metodu, eklemek istediğiniz dokümanları bir dizi olarak alır ve bu diziyi veritabanına ekler. Bu işlem sırasında her doküman InsertOne metodu ile tek tek veritabanına eklenmek yerine, InsertMany metodu ile toplu bir şekilde eklenir. Bu da işlem süresini önemli ölçüde kısaltır.
Bir dizi doküman eklemek için InsertMany metodu kullanırken, dizi içindeki her dokümanın birbirinden farklı olması gerekir. Aksi takdirde, işlem başarısız olacaktır.
Aşağıdaki örnek kod InsertMany metodu kullanarak bir dizi dokümanı veritabanına eklemektedir:
db.collection('ornek_koleksiyon').insertMany([ { ad: 'Ahmet', yas: 25, sehir: 'Ankara' }, { ad: 'Ali', yas: 30, sehir: 'İstanbul' }, { ad: 'Ayşe', yas: 20, sehir: 'İzmir' }]);
Bu örnekte, 'ornek_koleksiyon' adlı koleksiyonda üç doküman toplu bir şekilde ekleniyor. Her doküman, 'ad', 'yas' ve 'sehir' alanlarından oluşan farklı verilere sahiptir.
InsertMany metodu, birden fazla dokümanı veritabanına eklemek için kullanışlı ve etkili bir yöntemdir. Bu metot sayesinde, çok sayıda veriyi hızlı ve kolay bir şekilde veritabanına ekleyebilirsiniz.
Read İşlemi
Read işlemi, MongoDB'de mevcut olan verilerin nasıl görüntüleneceğini öğrenmek için yapılan bir işlemdir. Bu işlem için kullanılabilecek birçok MongoDB metodu ve filtreleme işlemleri mevcuttur.
FindOne ve Find: MongoDB'de tek bir doküman veya birden fazla doküman okuma işlemi yapmak için kullanılan metotlardır. FindOne sadece ilk veriyi bulur ve geri döndürürken, Find tüm verileri bulur ve geri döndürür. Bu işlemlerin yanı sıra, belirli bir kriteri karşılayan verileri okumak için kullanılan filtreleme işlemleri de vardır.
Filtreleme Operatörü | Açıklama |
---|---|
$eq | Eşitlik operatörüdür. Belirtilen değere eşit olan verileri döndürür. |
$ne | Eşit olmayan operatördür. Belirtilen değere eşit olmayan verileri döndürür. |
$in | Belirtilen değerlerden en az birine sahip olan verileri döndürür. |
$nin | Belirtilen değerlere sahip olmayan verileri döndürür. |
Yukarıda verilen operatörler, sadece birkaç örnek olup, daha fazla filtreleme işlemi için MongoDB dokümanlarını inceleyebilirsiniz.
Bu filtreleme işlemleri sayesinde, verileri belirli bir kritere göre sorgulayabilir ve sadece istediğimiz verileri elde edebiliriz. Bu da daha hızlı ve doğru sonuçlar almamızı sağlar.
FindOne ve Find
FindOne ve Find, MongoDB'de mevcut olan verilerin okunması için kullanılan iki önemli metottur. FindOne tek bir dokümanın okunması için kullanılırken, Find birden fazla dokümanın okunmasını sağlar. Her iki metot da kullanıcıların belirli bir kriteri karşılayan verileri bulup listelemesini sağlar.
Bu işlemlerin gerçekleştirilmesi için bir filtreleme işlemi yapılması gerekir. Bu filtrelemenin nasıl yapılacağına karar vermek için kullanıcılar belirli bir kriteri aramak için kullanabilecekleri çeşitli operatörlerle filtreleme işlemini gerçekleştirebilirler.
FindOne ve Find metodları, veritabanınızda bulunan verilerin içeriğini okumanız için ihtiyacınız olan tüm işlevselliği sunar. Birden fazla doküman okuma durumunda, elde edilen sonuçların sıralamasını veya belirli bir sınırlandırma yapmayı kolaylaştırmak için sort() ve limit() gibi diğer metotlar da kullanılabilir.
Aşağıdaki örnek kod iki üzerinden okuma işlemi gerçekleştirmek için Find metodunun nasıl kullanılacağına dair bir örnektir:
db.inventory.find( { status: "available" } )
Bu kod, "inventory" koleksiyonundaki tüm verileri okur ve durumları "available" olanları listeler. FindOne metotu ise benzer şekilde çalışır, ancak sadece belirli bir dokümanı döndürür.
FindOne ve Find işlemlerinin tam bir listesi için MongoDB resmi dokümantasyonuna göz atabilirsiniz.
Filtreleme İşlemleri
CRUD işlemlerin okuma aşamasında, belirli bir kriteri karşılayan verileri okumak için filtreleme işlemi kullanılır. Bu işlem, okunacak data sayısını azaltmak ve işlem verimliliğini artırmak için oldukça önemlidir. MongoDB'de kullanılan birkaç filtreleme metodu vardır; bunlardan bazıları şunlardır:
- $in: Belirtilen liste içindeki verilerin döndürülmesi için kullanılır.
- $lt: Belirtilen değerden küçük olan verilerin döndürülmesi için kullanılır.
- $gt: Belirtilen değerden büyük olan verilerin döndürülmesi için kullanılır.
- $lte: Belirtilen değere eşit veya küçük olan verilerin döndürülmesi için kullanılır.
- $gte: Belirtilen değere eşit veya büyük olan verilerin döndürülmesi için kullanılır.
Örneğin, belirli bir tarihten sonra yapılan satın alma işlemlerini filtrelemek için $gte metodu kullanılabilir. Bu yöntem, işlem çağrısının azaltılması sayesinde verimliliğin arttırılmasına yardımcı olabilir. Ayrıca, filtreleme işlemi, MongoDB'nin aggregation framework'ünün bir parçası olarak da kullanılabilir. Bu, Karmaşık sorguları, birleştirme işlemlerini ve gruplamaları işlemek için kullanılabilir. Özetlemek gerekirse, filtreleme işlemleri, belirli kriterleri karşılayan verileri okumak için kullanılan çok önemli bir yöntemdir.
Update İşlemi
MongoDB'de verilerin güncellenmesi, update işlemi ile yapılır. Update işlemi, verilen kriterlere göre belirli alanlardaki verilerin güncellenmesini sağlar.
Update işlemi sırasında kullanılabilecek MongoDB metotları şunlardır:
- updateOne: Tek bir dokümanı güncellemek için kullanılır.
- updateMany: Birden fazla dokümanı güncellemek için kullanılır.
Bu işlemler için belirli alanlardaki verilerin nasıl değiştirileceği belirtilmelidir. Örneğin, "updateOne" ile bir dokümanın sadece belirli bir alanı güncellenebilirken "updateMany" ile birden fazla dokümanın farklı alanları güncellenebilir.
Update işleminde ayrıca belirli kriterlere göre filtreleme yapılabilir. Kriterlere uyan dokümanlar güncellenebilir veya silinebilir. Bu kriterler, query parametreleri şeklinde belirtilmektedir.
Örneğin:
Alan | Değer |
---|---|
isim | John |
yaş | 30 |
Yukarıdaki tabloda, "isim" alanı "John" ve "yaş" alanı "30" olan dokümanlar güncellenebilir veya silinebilir.
Update işlemi, MongoDB'de oldukça önemli ve sık kullanılan bir işlem olduğu için dikkatli bir şekilde kullanılması gerekmektedir. Yanlış kullanım, veri kaybına neden olabilir.
UpdateOne ve UpdateMany
MongoDB veritabanı yönetim sistemi, güncelleme işlemlerinde de oldukça kullanışlıdır. Güncelleme işlemleri, UpdateOne ve UpdateMany adlı iki farklı metot ile yapılabilir. UpdateOne metodu, sadece bir dokümanı güncellerken, UpdateMany metodu birden fazla dokümanı güncellemek için kullanılır. Bu işlemleri yapabilmek için, güncelleme işlemi yapılacak doküman veya dokümanların filtreleme işlemi yapılmalıdır. Öncelikle, UpdateOne metodu ile tek bir dokümanı güncellemek için, öncelikle güncelleme işlemi yapılacak dokümanın ObjectId'sine ihtiyaç vardır. ObjectId'yi kullanarak güncelleme işlemi yapmak için ise, '$set' kullanılır. Örneğin, 'customers' koleksiyonunda 'name' alanı 'John Doe' olan dokümanın yaşını güncellemek istiyoruz. Bu işlemi yapmak için, şu kodu kullanabiliriz:db.customers.updateOne( { name: "John Doe" }, { $set: { age: 45 } })UpdateMany metodu ise, bir veya birden fazla dokümanı aynı anda güncellemek için kullanılır. Örneğin, 'customers' koleksiyonunda 'age' alanı 30'dan küçük olan tüm dokümanların adreslerini güncellemek istediğimizi varsayalım. Bu işlemi yapmak için, şu kodu kullanabiliriz:
db.customers.updateMany( { age: { $lt: 30 } }, { $set: { address: "New York" } })Bu örneklerde görüldüğü gibi, MongoDB veritabanı yönetim sistemi ile güncelleme işlemleri oldukça kolay ve hızlı bir şekilde yapılabilir. UpdateOne ve UpdateMany metotları sayesinde, hem tek bir doküman hem de birden fazla doküman güncelleme işlemleri yapılabilir. Filtreleme işlemleri de kullanarak, istenilen doküman veya dokümanları kolayca güncelleme işlemi gerçekleştirilebilir.
Filtreleme İşlemleri
MongoDB, verileri modelleme, depolama ve sorgulama için kullanılan bir NoSQL veritabanı yönetim sistemidir. Bu sistemde veriler, JSON benzeri dokümanlar şeklinde saklanır. CRUD işlemleri, yani create (oluşturma), read (okuma), update (güncelleme) ve delete (silme) işlemleri, MongoDB'de oldukça kolay ve etkili bir şekilde gerçekleştirilebilir.
Filtreleme işlemleri, belirli bir kriteri karşılayan verilerin güncellenmesi amacıyla kullanılır. Bu işlem için MongoDB'de bazı metotlar bulunmaktadır. Bunlar şunlardır:
Metotlar | Açıklama |
---|---|
$eq | Belirtilen değere eşit olan dokümanları döndürür. |
$ne | Belirtilen değerden farklı olan dokümanları döndürür. |
$gt | Belirtilen değerden büyük olan dokümanları döndürür. |
$gte | Belirtilen değerden büyük veya eşit olan dokümanları döndürür. |
$lt | Belirtilen değerden küçük olan dokümanları döndürür. |
$lte | Belirtilen değerden küçük veya eşit olan dokümanları döndürür. |
Bu metotlar, update işlemi sırasında güncelleme yapılacak dokümanların belirli bir kritere uymasını sağlar. Örneğin, $eq metodu kullanarak "age" alanı 30 olan tüm dokümanları güncelleyebilirsiniz. Ayrıca, $ne metodu kullanarak "gender" alanı "male" olan tüm dokümanları da güncelleyebilirsiniz.
Delete İşlemi
Mevcut verilerin silinmesi işlemi, yine MongoDB metotları kullanılarak gerçekleştirilir. İki farklı metot kullanılarak silme işlemi yapmak mümkündür: DeleteOne ve DeleteMany. İsimlerinden de anlaşılacağı üzere, bu metotlar tek bir dokümanı ya da birden fazla dokümanı silmek için kullanılır. DeleteOne metodu ile tek bir dokümanı silmek mümkünken, DeleteMany metodu ile birden fazla doküman silinebilir.
Filtreleme işlemleri dizgesi de sildiğimiz doküman ya da dokümanların belirlenmesinde kullanılır. Sadece belirli kriterleri karşılayan dokümanların silinmesi gereken durumlarda filtremelemeye başvurularak verilerin yalnızca belirlenen kriterlere uyanları silinir. Bu sayede diğer veriler korunarak sadece gerekli olanların silinmesi sağlanır.
Bir MongoDB silme işlemi örnek olarak şu şekilde gösterilebilir:
DeleteOne | DeleteMany |
---|---|
'users' koleksiyonundaki 'John Doe' dokümanın silinmesi: | 'products' koleksiyonundaki 'price' değeri 0.00 olan dokümanların silinmesi: |
Bu şekilde, belirli bir koşulu sağlayan dokümanlar veritabanından silinebilir.
DeleteOne ve DeleteMany
MongoDB ile silme işlemi yapmak için DeleteOne ve DeleteMany metotları kullanılır. DeleteOne, yalnızca belirtilen kriterleri karşılayan ilk dokümanı silerken, DeleteMany birden fazla dokümanı silmek için kullanılır.
DeleteOne metodu, yalnızca belirli bir dokümanın silinmesi gerektiğinde kullanılır. Silme işlemi için şu şekilde bir kod yazılabilir:
```db.collection.deleteOne({kriter:değer});```Burada "collection" veritabanı koleksiyonu adını, "kriter" hangi belirtecin silineceğini, "değer" ise hangi değerinin silineceğini belirtir.
DeleteMany metodu ise birden fazla dokümanın silinmesinde kullanılır. Şu şekilde bir kod yazarak, belirli bir kritere uyan tüm dokümanlar silinebilir:
```db.collection.deleteMany({kriter:değer});```
Bu kodda da "collection" veritabanı koleksiyonunun adını, "kriter" belirtecinin ismini ve "değer" ise hangi değerinin silineceğini gösterir.
Silme işlemi tamamlandığında, ekranda kaç tane dokümanın silindiği bilgisi görüntülenir. Silme işlemi sonucu "acknowledged:true" olarak kaydedilir ve silinen dokümanlar bir dizi içinde döndürülür.
Filtreleme İşlemleri
Filtreleme işlemleri, belirli bir kriteri karşılayan verileri okumak, güncellemek ya da silmek için kullanılan metotlardır. Bu işlemler sayesinde veritabanındaki büyük veri kümeleri üzerinde kolaylıkla işlem yapılabilir.
MongoDB'de veri filtrelemek için kullanılan metotlar arasında $lt, $lte, $gt, $gte, $eq, $ne, $in ve $nin gibi değişkenler yer almaktadır. Bu filtrelere göre sorgular oluşturulabilir ve belirli bir kritere uygun olan veriler seçilebilir.
Örneğin, filter = {age: {$gt: 30}} olarak belirtildiğinde, 30 yaşından büyük olan tüm veriler seçilir. Bununla birlikte, bu filtreye ek olarak başka koşullar da eklenebilir. Örneğin, filter = {age: {$gt: 30}, city: "İstanbul"} sadece 30 yaşından büyük ve İstanbul'da yaşayanları seçecektir.
Bu filtreleme işlemleri, silme işlemi için de kullanılabilir. MongoDB'de belirli bir kritere uyan verileri silmek için deleteOne() ve deleteMany() metotları kullanılır.
Metot | Açıklama |
---|---|
deleteOne() | Belirli bir kritere uyan ilk veriyi siler |
deleteMany() | Belirli bir kritere uyan tüm verileri siler |
Örneğin, db.collection.deleteOne({age: {$gte: 65}}) metodu, 65 yaşından büyük olan ilk veriyi siler. Benzer şekilde, db.collection.deleteMany({age: {$gte: 65}}) metodu tüm 65 yaşından büyük olan verileri siler.
Filtreleme işlemleri, MongoDB veritabanı yönetiminde oldukça yaygın olarak kullanılan işlemlerdendir. Bu işlemler sayesinde veritabanından sadece belirli koşulları sağlayan veriler seçilebilir ve veritabanından gereksiz veriler silinebilir.