MongoDB Örnekle Update() Belgesi

\

⚡ Akıllı Özet

MongoDB Update() belge işlemleri, bir koleksiyondaki mevcut kayıtları değiştirir. update() yöntemi, belgeleri seçmek için bir koşul ve alan değerlerini değiştirmek için $set gibi bir değiştirici alır ve multi seçeneği, eşleşen birden fazla belgeyi aynı anda günceller.

  • ✏️ update() Metodu: `update()` komutu, belirli bir koşula uyan belgelerdeki alanları değiştirir.
  • 🎯 Maç Durumu: İlk argüman, {Employeeid:1} gibi hangi belgelerin güncelleneceğini seçer.
  • 🔧 $ayar Operator: `$set` operatörü, tüm belgeyi değiştirmeden bir alana yeni bir değer atar.
  • 📚 Birçok şeyi güncelleyin: Çoklu seçenek veya updateMany(), yalnızca bir belgeyi değil, eşleşen her belgeyi değiştirir.
  • Upsert: Upsert seçeneği, mevcut belgelerden hiçbiri koşulu karşılamadığında yeni bir belge ekler.
  • 🔄 Modern Yöntemler: updateOne(), updateMany() ve replaceOne() fonksiyonları, kullanımdan kaldırılan update() fonksiyonunun güncel alternatifleridir.

MongoDB Güncelleme() Belgesi

Temel belge güncellemeleri

MongoDB Bir koleksiyonun belgelerini güncellemek için update() komutunu sağlar. Yalnızca güncellemek istediğiniz belgeleri güncellemek için güncelleme bildirimine yalnızca seçilen belgelerin güncellenmesini sağlayacak bir ölçüt ekleyebilirsiniz.

Komuttaki temel parametreler, belgenin güncellenmesi gereken bir durumdur ve ardından yapılması gereken değişikliktir.

Aşağıdaki örnek bunun nasıl yapılabileceğini göstermektedir.

) 1 Adım Güncelleme komutunu verin

) 2 Adım Hangi belgenin güncellenmesi gerektiğine karar vermek için kullanmak istediğiniz koşulu seçin. Örneğimizde Çalışan kimliği 22 olan belgeyi güncellemek istiyoruz.

) 3 Adım Alan Adını değiştirmek için set komutunu kullanın

) 4 Adım Hangi Alan Adını değiştirmek istediğinizi seçin ve yeni değeri buna göre girin.

db.Employee.update(
{"Employeeid" : 1},
{$set: { "EmployeeName" : "NewMartin"}});

Komut başarıyla yürütülürse, aşağıdaki Çıktı gösterilecektir

Çıktı:

Temel belge güncellemeleri

Çıktı, bir kaydın koşulla eşleştiğini ve dolayısıyla ilgili alan değerinin değiştirildiğini açıkça göstermektedir.

MongoDB Güncelle Operaları

$set operatörü bir alanı değiştirmenin en yaygın yoludur, ancak MongoDB Farklı ihtiyaçlar için çeşitli güncelleme operatörleri sunar. Bunları, `$set` ile birlikte veya onun yerine `update()` fonksiyonunun ikinci argümanına yerleştirirsiniz:

  • $set: Bir alanın değerini ayarlar; alan yoksa oluşturur.
  • $unset: Belgeden bir alanı tamamen kaldırır.
  • $art: Belirtilen miktarda sayısal bir alanı artırır veya azaltır.
  • $mul: Sayısal bir alanın değerini çarpar.
  • $rename: Bir alanın adını yeni bir adla değiştirir.
  • $ itme: Bir dizi alanına değer ekler.
  • $çekme: Bir dizi alanından eşleşen değerleri kaldırır.

Her operatör yalnızca belirttiğiniz alanları hedefler ve belgenin geri kalanını değiştirmez. Birden fazla alanı aynı anda değiştirmek için tek bir update() çağrısında birden fazla operatörü birleştirebilirsiniz; bu, güncellemelerin hassas olmasını sağlar ve korumak istediğiniz verilerin üzerine yazılmasını önler.

Birden Çok Değeri Güncelleme

Birden fazla/toplu dokümanın aynı anda güncellenmesini sağlamak MongoDB çoklu seçeneğini kullanmanız gerekir çünkü aksi takdirde varsayılan olarak aynı anda yalnızca bir belge değiştirilir.

Aşağıdaki örnek birçok belgenin nasıl güncelleneceğini göstermektedir.

Bu örnekte öncelikle Çalışan kimliği “1” olan belgeyi bulacağız ve Çalışan adını “Martin” yerine “NewMartin” olarak değiştireceğiz.

) 1 Adım Güncelleme komutunu verin

) 2 Adım Hangi belgenin güncellenmesi gerektiğine karar vermek için kullanmak istediğiniz koşulu seçin. Örneğimizde Çalışan ID’si “1” olan dokümanın güncellenmesini istiyoruz.

) 3 Adım Hangi Alan Adlarını değiştirmek istediğinizi seçin ve yeni değerlerini buna göre girin.

db.Employee.update
(
	{
		Employeeid : 1
	},
	{
		$set :
		{
			"EmployeeName" : "NewMartin",
			"Employeeid" : 22
		}
	}
)

Komut başarıyla yürütülürse ve çalıştırırsanız "bulmak" Çalışan kimliği 22 olan belgeyi arama komutunu verdiğinizde aşağıdaki çıktıyı göreceksiniz

Çıktı:

Birden Çok Değeri Güncelleme

Çıktı, bir kaydın koşulla eşleştiğini ve dolayısıyla ilgili alan değerinin değiştirildiğini açıkça göstermektedir.

Bir belgeye nasıl ekleme/çıkarma (upsert) işlemi yapılır? MongoDB

Upsert, güncelleme ve ekleme işlemlerinin birleşimidir. Etkinleştirdiğinizde, MongoDB Koşulu karşılayan belgeyi günceller veya eşleşme bulunmazsa yeni bir belge ekler. Bu, bir kaydın zaten mevcut olup olmadığından emin olmadığınız durumlarda kullanışlıdır.

Bir upsert işlemi gerçekleştirmek için, update() fonksiyonunun üçüncü argümanı olarak upsert seçeneğini true olarak ayarlayın:

db.Employee.update(
  {Employeeid: 5},
  {$set: {EmployeeName: "Sofia"}},
  {upsert: true}
)

İşte olan:

  • Çalışan kimlik numarası 5 olan bir belge mevcutsa, MongoDB Çalışan Adı alanını günceller.
  • Eğer böyle bir belge mevcut değilse, MongoDB Employeeid 5 ve EmployeeName " ile yeni bir belge ekler.Sofia".

Upsert işlemleri, sayaçlar, ayarlar ve bir kaydı ilk kullanımda oluşturup daha sonra güncellemek istediğiniz her türlü iş akışı için kullanışlıdır. Modern sistemlerde MongoDBAynı davranış, seçeneklere {upsert: true} eklenerek updateOne() ve updateMany() fonksiyonları aracılığıyla da elde edilebilir. Koşula dikkat edin, çünkü geniş bir filtre ile upsert birleşimi beklenmedik belgeler oluşturabilir.

updateOne() vs updateMany() vs replaceOne()

`update()` metodu artık eski bir komuttur. Modern MongoDB Sürücüler davranışlarını üç daha net yönteme ayırdılar. Aşağıdaki tablo bunları karşılaştırmaktadır:

Yöntem Ne yapar Etkilenen belgeler
updateOne() İlk eşleşen belgeye güncelleme operatörlerini uygular. Bir
güncellemeMany() Eşleşen her belgeye güncelleme operatörlerini uygular. çok
değiştirBir() Eşleşen ilk belgenin tamamını yeni bir belgeyle değiştirir. Bir

Tek bir hedefli değişiklik için updateOne() yöntemini, eski çoklu seçenek yerine updateMany() yöntemini ve düzenleme alanları yerine tüm belgeyi değiştirmek istediğinizde replaceOne() yöntemini kullanın. Bu yöntemler, kaç belgenin eşleştiğini ve kaçının değiştirildiğini gösteren net bir sonuç döndürür; bu da onları update() yöntemine göre daha güvenli ve hata ayıklaması daha kolay hale getirir.

SSS

$set gibi bir güncelleme operatörü olmadan, MongoDB Eşleşen belgenin tamamını sağladığınız nesneyle değiştirir ve dahil edilmeyen alanları siler. Belirli alanları değiştirmek için her zaman `$set` kullanın.ping Geri kalanı sağlam.

Evet. Eğer $set değişkeninde belirtilen alan eşleşen belgede yoksa, MongoDB Verilen değerle birlikte ekler. Bu da $set fonksiyonunu hem mevcut alanları güncellemek hem de yenilerini eklemek için kullanışlı hale getirir.

`findOneAndUpdate()` fonksiyonunu `returnDocument` seçeneği `after` olarak ayarlanmış şekilde kullanın. Bu, değişikliği uygular ve değiştirilmiş belgeyi tek bir atomik işlemde döndürür; bu da yeni değerlere hemen ihtiyacınız olduğunda kullanışlıdır.

Yapay zeka, doğru koşul ve operatör (örneğin `$set` veya `$inc`) ile basit bir isteği güncelleme veya `updateMany` komutuna dönüştürebilir ve yeni başlayanların hata yapmasını önlemek için her bir bölümü açıklayabilir.

Evet. Yapay zeka, $set parametresini içermeyen ve tüm belgeleri değiştirecek bir güncellemeyi işaretleyebilir, bir filtre her şeyle eşleştiğinde uyarı verebilir ve üretimde çalıştırmadan önce bir kopyası üzerinde test edilmesini önerebilir.

Bu yazıyı şu şekilde özetleyin: