MongoDB Veritabanı İşlemleri: Insert, Update ve Delete İşlemleri

MongoDB Veritabanı İşlemleri: Insert, Update ve Delete İşlemleri

MongoDB Veritabanı'nın Insert, Update ve Delete işlemlerini öğrenmek için doğru yerdesiniz! Bu makalede, MongoDB veritabanına veri ekleme, güncelleme ve silme işlemlerini adım adım açıklıyoruz İster yeni başlayan biri olun, ister deneyimli bir geliştirici, bu makale size faydalı olacaktır Hemen okuyun ve MongoDB işlemleri hakkında bilgi sahibi olun!

MongoDB Veritabanı İşlemleri: Insert, Update ve Delete İşlemleri

MongoDB, verilerin depolanması, düzenlenmesi ve yönetilmesi için kullanılan popüler bir NoSQL veritabanıdır. Bu veritabanı, verileri BSON (Binary JSON) formatında saklar ve bunlar üzerinde yüksek performanslı işlemler gerçekleştirebilir. MongoDB'de temel işlemler arasında Insert (ekleme), Update (güncelleme) ve Delete (silme) de bulunur.

Insert işlemi, MongoDB veritabanına yeni belge eklemek için kullanılır. Bu işlem için kullanılan yöntemler arasında insertOne(), insertMany() ve insert() bulunur. Update işlemi, mevcut bir belgedeki verileri değiştirme veya güncelleme işlemidir. Bu işlem için genellikle updateOne(), updateMany() gibi yöntemler kullanılır. Delete işlemi ise veritabanından belirli bir belgenin veya belgelerin silinmesi işlemidir. Bu işlem için ise deleteOne(), deleteMany() yöntemleri kullanılır.


Insert İşlemi

MongoDB veritabanında yeni veri eklemek için insert komutu kullanılır. Veri eklemek için insertOne() veya insertMany() metodları kullanılabilir.

insertOne() metodu, sadece bir belge eklemek için kullanılır. Bu metod, eklenecek belgeyi belirli bir koleksiyonda seçer ve belgeye ait tüm alanları ekler. Örneğin:

Koleksiyon Belge
users
db.users.insertOne({        name: "John Doe",        age: 30,        email: "john.doe@example.com"      })

insertMany() metodu ise birden fazla belge eklemek için kullanılır. Bu metod, koleksiyondaki tüm belgeleri belirtilen bir dizi ile değiştirir. Örneğin:

Koleksiyon Belge Dizisi
users
db.users.insertMany([        {          name: "Jane Doe",          age: 32,          email: "jane.doe@example.com"        },        {          name: "Bob Smith",          age: 25,          email: "bob.smith@example.com"        }      ])

Insert işlemi sırasında, MongoDB otomatik olarak bir _id alanı oluşturur ve belgenin benzersiz kimliğini belirler.


Update İşlemi

MongoDB'de veri güncelleme işlemi iki farklı yaklaşımla yapılabilir. UpdateOne() metodu tek bir belgeyi güncellerken, UpdateMany() metodu ise birden fazla belgeyi aynı anda güncelleyebilir.

UpdateOne() metodu, bir belgeyi nasıl güncelleyebileceğimizi öğrenmek için sıklıkla kullanılır. Belirli bir belgeyi güncellemek için, öncelikle hangi belgeyi güncellemek istediğimizi belirtmeliyiz. Bunun için bir filtre kullanabiliriz:

{"name": "Ahmet"}

Yukarıdaki örnekte, Ahmet adında bir belgeyi güncellemek istediğimizi söylüyoruz. Bu filtre, güncellemek istediğimiz belgeyi seçecektir. Daha sonra, güncelleme isteğimizi belirlememiz gerekiyor. Bunun için $set operatörü kullanılabilir. $set operatörü, belirli bir alanın değerini değiştirmemize olanak tanır:

{"$set": {"age": 25}}

Yukarıdaki örnekte, Ahmet adındaki belgenin yaşını 25 olarak güncelliyoruz. Bu işlemi yapmak için aşağıdaki örnek kullanılabilir:

db.users.updateOne({"name": "Ahmet"}, {"$set": {"age": 25}})

Bu kod, users koleksiyonunda Ahmet adındaki belgenin yaşını 25 olarak güncelleyecektir.

UpdateMany() metodu, birden fazla belgeyi güncellemek için kullanılır. Filtre ve güncelleme isteği yine kullanılır, ancak bu sefer belirli bir koşulu sağlayan tüm belgeler güncellenir. Örneğin, tüm kullanıcıların yaşını 1 artırmak için şu kod kullanılabilir:

db.users.updateMany({}, {"$inc": {"age": 1}})

Bu kod, users koleksiyonunda tüm belgelerin yaşını 1 artıracaktır.


UpdateOne() Metodu

UpdateOne() metodu, MongoDB veritabanı üzerinde bir belgeyi güncellemek için kullanılır. Bu metot kullanıldığında, ilk bulduğu belgeyi günceller ve işlem bittikten sonra durur. Bu nedenle tek bir belgeyi güncellemek için ideal bir yöntemdir.

UpdateOne() metodunu kullanarak bir belgeyi güncellemek için, güncellenmesi gereken belgenin koşulunu belirleyen bir filtre belirtmeniz gerekmektedir. Bu filtrenin koşullarına uyan ilk belge güncellenecektir.

Güncellenecek alanları belirtmek için, $set operatörü kullanılır. Bu operatörü kullanarak, belirtilen alanları güncelleyebilirsiniz. Örneğin:

db.collection.updateOne({"isim": "Ahmet"}, {"$set": {"yaş": 30}}

Bu örnekte, "isim" alanı "Ahmet" olan ilk belgenin "yaş" alanı 30 olarak güncellenecektir.

Ayrıca, $inc operatörünü kullanarak bir alanın değerini artırmak veya azaltmak da mümkündür. Bu operatörü kullanarak, belirli bir sayı ile bir alanın değerini artırabilir veya azaltabilirsiniz. Örneğin:

db.collection.updateOne({"isim": "Ahmet"}, {"$inc": {"yaş": 1}}

Bu örnekte, "isim" alanı "Ahmet" olan ilk belgenin "yaş" alanı 1 artırılacaktır.


$set Operatörü

$set operatörü, MongoDB'de veri güncelleme işlemlerinde kullanılan en önemli operatörlerden biridir. Bu operatör, belirtilen alanlarda yeni değerler atamak için kullanılır. Aynı zamanda, mevcut belgenin sadece belirli bir alanını güncellemek için de kullanılabilir. Bu operatör, basit bir JSON belgesi olan {"$set":{}} kullanılarak uygulanır.

$set operatörü, güncellenecek belgenin adını ve alan adlarını belirleyen "updateOne ()" veya "updateMany ()" metotları ile birlikte kullanılır. Örneğin, belgeyi güncellemek istiyorsanız ve belgenin "name" alanını "John" olarak değiştirmek istiyorsanız, aşağıdaki örnek gibi bir değişken oluşturabilir ve $set operatörünü kullanabilirsiniz.

```const myquery = {address: "Park Avenue"};const newvalues = {$set: {name: "John"}};db.collection("customers").updateOne(myquery, newvalues, function(err, res) { if (err) throw err; console.log("1 document updated");});```

Yukarıdaki örnek, "customers" koleksiyonundaki "Park Avenue" adresine sahip bir belgenin "name" alanını "John" olarak günceller. $set operatörü, belirtilen alanın değerini güncellemek yerine, belgenin sadece istenen alanlarını güncellemek için de kullanılabilir. Örneğin, aşağıdaki örnek, "customers" koleksiyonundaki "Jack" kullanıcısının adresini "Park Avenue" olarak günceller:

```const myquery = {name: "Jack"};const newvalues = {$set: {address: "Park Avenue"}};db.collection("customers").updateOne(myquery, newvalues, function(err, res) { if (err) throw err; console.log("1 document updated");});```

$set operatörü, MongoDB veritabanında veri güncellemesi yaparken oldukça kullanışlı bir araçtır. Bu operatör, belirli alanlara yeni değerler atamayı ve mevcut belgenin sadece istenen alanlarını güncellemeyi sağlar. Bu operatörü kullanarak, kolayca özelleştirilmiş veri güncelleme işlemleri gerçekleştirebilirsiniz.


$inc Operatörü

$inc operatörü, MongoDB veritabanında kullanılan ve bir belgedeki belirli bir alanın değerini arttırmak için kullanılan bir operatördür. Bu operatör, Update işlemi sırasında kullanılır ve belirtilen alanın mevcut değerine belirtilen sayıyı ekler.

Bu operatörün kullanımı oldukça basittir. Öncelikle, güncellenecek belgenin seçilmesi gerekir. Daha sonra, Update işlemi yapılırken $inc operatörü kullanılır ve belirtilen alanın adı ve arttırılacak miktar belirtilir.

Örneğin, bir öğrencinin notu kaydedilen bir belgede, notu 5 puan arttırmak isteyelim. Bunun için, aşağıdaki gibi bir $inc operatörü kullanabiliriz:

Alan Adı Değer
Öğrenci Adı Ahmet
Öğrenci Notu 75

Bu belgedeki öğrenci notunu 5 puan artırmak için, aşağıdaki Update işlemi kullanılabilir:

db.ogrenciler.updateOne(   { öğrenci_adı: "Ahmet" },   {     $inc: { "öğrenci_notu": 5 }   })

Bu işlem, Ahmet adlı öğrencinin notunu 5 arttıracak ve yeni notu 80 olarak güncelleyecektir.

$inc operatörü aynı zamanda negatif değerler için de kullanılabilir. Böylelikle, belirli bir alandaki değer azaltılabilir.

Bu operatör, özellikle sayısal değerleri içeren belgelerde çok kullanışlıdır. Örneğin, bir işlem sonrası stoktaki ürün sayısı güncellemek için $inc operatörü kullanılabilir.


UpdateMany() Metodu

MongoDB veritabanında birden fazla belgenin güncellenmesi gerektiğinde kullanılabilecek bir diğer metot, UpdateMany() metodudur. Bu metot, belirli kriterlere göre birden fazla belgenin güncellenmesini sağlar.

UpdateMany() metodu kullanıldığında, belirtilen filtre kriterlerine uyan tüm belgelerin güncellenmesi sağlanır. Bu filtre kriterleri kullanarak belirli bir koleksiyondaki tüm belgeleri veya belirli bir sorgu sonucundaki belgeleri güncelleyebilirsiniz.

Örneğin, bir müşteri veritabanından tüm Amerika Birleşik Devletleri'nde yaşayan müşterilerin telefon numaralarını güncellemek istediğinizi düşünün. UpdateMany() metodunu kullanarak, "country" alanı "USA" olan tüm belgeleri seçebilir ve bunların her birinin "phone" alanını güncelleyebilirsiniz.

Kriter Değer
country USA

Bu örnekteki filtre kriterleri, UpdateMany() metodu kullanılarak bir koleksiyondaki tüm belgeleri güncelleyebileceğiniz basit bir örnek göstermektedir. Ancak belirli bir sorgu sonucundaki belgeleri güncellemek için daha karmaşık filtre kriterleri kullanabilirsiniz.

UpdateMany() metodu, güncelleme işleminde $set ve $inc operatörlerini kullanmanıza olanak tanır. Bu operatörlerin kullanımı, UpdateOne() metoduyla benzerdir. Bunlarla birlikte kullanılabilen diğer operatörler arasında $push, $pull, $addToSet ve $pop yer alır.

  • $push: bir diziye yeni bir öğe eklemek için kullanılır
  • $pull: bir diziden belirli bir öğeyi kaldırmak için kullanılır
  • $addToSet: bir diziye yinelenmeyen bir öğe eklemek için kullanılır
  • $pop: bir diziden ilk veya son öğeyi kaldırmak için kullanılır

UpdateMany() metodu, sorguda yer alan filtre kriterlerine uyan tüm belgeleri güncellemesi için gereken zamanı alabilir. Bu nedenle, büyük bir koleksiyonda belirli bir filtre kriteri kullanarak birden fazla belgeyi güncellemek istediğinizde, zaman alabilir. Ancak MongoDB, yüksek performans ve ölçeklenebilirlik sunan veritabanı çözümleri arasında yer aldığı için, büyük miktarda veri işleme gerektiren işlemlerle başa çıkabilir.


Delete İşlemi

MongoDB'de kayıt silmek için iki metot kullanılır; DeleteOne() ve DeleteMany(). DeleteOne(), koleksiyondaki bir belgeyi silerken DeleteMany(), belirli koşullara uyan birden fazla belgeyi siler.

DeleteOne() Metodu

DeleteOne() metodu, belirlenen koşulları sağlayan ilk belgeyi siler. Bu işlem, veritabanındaki yalnızca bir belgeyi silmek için kullanılır. Örneğin, "users" koleksiyonundan "name" alanı "John" olan ilk belgeyi silmek için şu komut kullanılır:

db.users.deleteOne({"name": "John"})

DeleteMany() Metodu

Birden fazla belgeyi silmek için kullanılan DeleteMany() metodu, belirli koşulları sağlayan tüm belgeleri veritabanından kaldırır. Örneğin, "users" koleksiyonundan "age" alanı 40'tan büyük olan tüm belgeleri silmek için şu komut kullanılır:

db.users.deleteMany({"age": {"$gt": 40}})

Burada $gt ("greater than") operatörü, "40'tan büyük" koşulunun sağlaması için kullanılmıştır. MongoDB'de diğer birçok koşul operatörü de bulunur ve bunlar koşulların farklı şekillerde belirlenmesine izin verir.


DeleteOne() Metodu

MongoDB veritabanı işlemleri arasında bulunan Delete işlemi, belirli dokumentlerin database üzerinden silinmesini sağlar. Bu işlemi gerçekleştirmek için ise kullanabileceğiniz en temel metotlar DeleteOne() ve DeleteMany()’dir. Bu yazımızda, DeleteOne() metodunu ele alacağız ve bu metodu kullanarak bir belgeyi nasıl silebileceğimizi öğreneceğiz.

DeleteOne() metodunu kullanarak gönderdiğiniz parametrelere uygun olarak, belirtilen bir belgeyi silmek mümkündür. Metodun kullanımı oldukça basittir. İlk olarak, sileceğimiz belgenin filtrelemesi yapılır. Bunu yapmak için verilecek olan parametreler, belgenin hangi koşulları sağlaması gerektiğini belirtir. Bu sayede, veritabanında bulunan birden fazla belge arasından sadece belirli koşullar sağlayan belge seçilerek silinebilir.

DeleteOne() metodu, diğer MongoDB yöntemleri gibi, bir JSON nesnesi şeklinde parametreler alır. Bu parametreler, filtreleme için kullanılır. Örneğin, bir kullanıcının bilgilerinin yer aldığı bir koleksiyonumuz olsun. Bu koleksiyonda yer alan belgelerden, ismi ‘John’ olan kullanıcının bilgilerini silmek için aşağıdaki kod bloğunu kullanabiliriz:

```db.users.deleteOne( { "name": "John" } )```

Yukarıdaki kod bloğunda, 'users' koleksiyonundan, ismi 'John' olan belge silinmektedir. Belirtilen koşulları sağlayan sadece bir belge bulunması halinde bu belge silinir. Eğer belirtilen koşulları sağlayan birden fazla belge var ise, ilk bulunan belge silinir.

DeleteOne() metodunda kullanabileceğimiz diğer bir parametre ise "w" parametresidir. Bu parametre, herhangi bir işlem yapıldığında geri dönüş değerini belirler. Varsayılan olarak, “w” parametresi 1 olarak atanmıştır. Bu, işlemin geri dönüş değerinin true ya da false olarak belirtilmesini sağlar. Eğer “w” parametresi 0 olarak atanırsa, geriye dönüş yapmayacaktır.

Sonuç olarak, MongoDB veritabanı işlemlerinin önemli bir bölümü olan Delete işlemi, DeleteOne() ve DeleteMany() metotları ile gerçekleştirilebilir. DeleteOne() metodunu kullanarak belirli koşulları sağlayan belgeyi kolaylıkla silebilirsiniz. Bu sayede, veritabanını gereksiz belgelerden arındırabilir ve daha düzenli bir veritabanı oluşturabilirsiniz.


DeleteMany() Metodu

MongoDB'de, birden fazla belgeyi silmek için DeleteMany() metodu kullanılır. Bu metodun kullanımı, bir belgeyi silmek için kullanılan DeleteOne() metoduna oldukça benzerdir. Fakat DeleteMany() metodunun, DeleteOne() metodu yerine kullanılması, büyük miktarda belgeyi silmek için daha uygun olabilir.

DeleteMany() metodu, bir filtre belirlemenize olanak tanır. Bu filtre, silinecek belgeleri belirleyecek olan koşulları içerir. Belirtilen koşullara uyan tüm belgeler silinir. Bu doğrultuda, DeleteMany() metodu, belgeleri silmenin en etkili ve hızlı yöntemlerinden biridir.

Örneğin, öğrenci adlarına sahip bir veritabanında, "Jhon" adlı tüm öğrencileri silmek istediğinizi varsayalım. Bu durumda, DeleteMany() metodu aşağıdaki şekilde kullanılabilir:

Metod Parametreler Açıklama
DeleteMany() { ad: "Jhon" } "ad" özelliği "Jhon" olan tüm belgeleri siler.

Bu örnekte, ad özelliği "Jhon" olan tüm öğrencilerin silinmesi sağlanır. Yani, DeleteMany() metodu sadece belirtilen koşulu sağlayan belgeleri siler ve diğer belgeleri etkilemez.

DeleteMany() metodu, MongoDB'de veri güncelleme işlemleri arasında oldukça önemli bir yere sahiptir. Büyük miktarda veriyi hızlı ve kolay bir şekilde silebilmenizi sağlar. Ancak, bu metodu kullanırken, sildiğiniz belgelerin geri döndürülemez olduğunu unutmayın. Bu nedenle, özenli bir şekilde kullanılmalıdır.