MongoDB'deki “db.collection.updateOne()” Yöntemi nedir?
“ db.collection.updateOne() ” yöntemi, tanımlanan ölçütlerle eşleşen tek bir belgeyi günceller. Kriterlere birden fazla belge uyuyorsa, yalnızca ilk belge değiştirilecektir. “ gibi Güncelleme Operatörleri ile birlikte kullanılabilir. $set ”, “ $inc ' Ve çok daha fazlası .
MongoDB'de “db.collection.updateOne()” Yöntemi Nasıl Kullanılır?
“ db.collection.updateOne() ” yöntemi, seçim kriterleriyle eşleşen tek bir belgenin birden çok alanını ve tek bir alanı güncellemek için kullanılabilir. Ayrıca, bu yöntem bir belgeye alan da ekleyebilir ve güncelleme operatörleri ile birlikte kullanılabilir. “ sözdizimi db.collection.updateOne() ” yöntemi aşağıda verilmiştir:
Temel Sözdizimi
db.collection.updateOne ( { filtre_kriteri } , { güncelleme } , { seçenekler } )
Burada yukarıdaki sözdiziminde:
- Bu yöntem, seçim kriterlerini karşılayan ilk belgeyi güncelleyecektir.
- “ filtre_kriteri ” güncelleme için kriterleri tanımlar
- “ güncelleme ” belgede değiştirilecek alanları içerir
- “ seçenekler ” bağımsız değişkeni, bu yöntemin çalışmasını değiştiren isteğe bağlı bir bağımsız değişkendir, örneğin ' yükseltmek ' Ve ' ipucu ”
Bu yazı için bir “ kullanacağız Linuxhint_Col2 ' koleksiyonun çalıştığını gösteren belgeler ' db.collection.updateOne() ' yöntem. Bu koleksiyonda depolanan belgeleri görüntülemek için sağlanan komutu yürütün:
db.Linuxhint_Col2.find ( )
Çıktı
Çıktı, “ klasöründe depolanan tüm belgeleri aldı. Linuxhint_Col2 ' Toplamak.
Örnek 1: Tek Bir Alanı Güncelleyin
Bir belgedeki tek alanı güncellemek için seçim kriterlerini tanımlayın ve kriterleri güncelleyin. Güncelleme kriterleri, güncelleme işleçleri kullanılarak tanımlanabilir. “ güncellemek için bir sorgu çalıştıralım. Modelleme_Ücreti ” alanı “ 18000 ' nerede ' Soy isim ' nesne eşittir ' Depp ” belgede:
Çıktı
Çıktı, başarı mesajını döndürdü.
Yapılan değişiklikleri doğrulamak için, etkilenen belgeyi bu “ bulmak() ' emretmek:
db.Linuxhint_Col2.find ( { 'Model_Name.Last_Name' : 'Depp' } ) Çıktı
Çıktı, belgenin başarıyla güncellendiğini doğruladı.
Örnek 2: “db.collection.updateOne()” Yöntemini Kullanarak Yeni Bir Alan Ekleyin
“ db.collection.updateOne() ” yöntemi, “ kullanarak yeni bir alan ekler. $set ” operatörü zaten yoksa belgede. “ olarak Deneyim ' işaretinin bulunduğu belgeler için ' alanı yoktur. Modelleme_Ücreti ' daha az ' 9000 ”.
Yeni alanı ekleyelim ' Deneyim 'değeri ile' Acemi ” belgede yer alan “ Modelleme_Ücreti ' daha az ' 9000 ” bu sorguyu kullanarak:
db.Linuxhint_Col2.updateOne ( { 'Modelleme_Ücreti' : { lt $ : 9000 } } , { $set : { 'Deneyim' : 'Acemi' } } ) Çıktı
Çıktı, bir belgenin seçim ölçütleriyle eşleştiğini ve başarıyla değiştirildiğini gösteren mesajı döndürür.
Koleksiyonda bulunan tüm belgeleri alarak bunu doğrulayalım” Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) Çıktı
Çıktı, koşulu karşılayan bir belgenin değiştirildiğini ve yeni bir alanın başarıyla eklendiğini gösterir.
Örnek 3: “db.collection.updateOne()” Yöntemini Kullanarak Bir Belgenin Birden Çok Alanını Güncelleyin
Kullanıcı, tek bir belgede bile birden çok alanı değiştirebilir. İşte aşağıda verilen bu sorgu, “” olduğu belgenin soyadını ve yaşını değiştirecektir. İlk adı ' eşittir ' Nuh “:
Çıktı
Sorgu hatasız yürütüldü.
Değişiklikleri doğrulamak için, 'find()' yöntemini kullanarak '' öğesinin bulunduğu belgeyi alın. İlk adı ' eşittir ' Nuh :
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Nuh' } ) Çıktı
Çıktı, değiştirilen belgeyi başarıyla döndürdü.
Örnek 4: Güncelleme Operatörleri ile “db.collection.updateOne()” Yöntemini kullanın
Önceki örnekte olduğu gibi, “ $set ' içindeki değerleri değiştirmek için ' güncelleme operatörü ' db.collection.updateOne() ' yöntem. Başka bir güncelleme operatörü kullanmayı deneyelim ' $inc ”, alanı belirtilen miktarda artırır.
Burada, aşağıda verilen sorguda, yöntem, ' İlk adı ' eşittir ' Kate ” ve “ ekler 1000 ' içinde ' Modelleme_Ücreti ” alanının değeri:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modelleme_Ücreti: 1000 } } ) Çıktı
Çıktı bir başarı mesajı döndürdü.
Değişiklikleri görmek için “ bulmak() ” etkilenen belgeyi alma yöntemi:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } ) Çıktı
Çıktı, ''nin değiştirilmiş değerini gösterir. Modelleme_Ücreti ”.
Örnek 5: “upsert” Argümanı Kullanılarak Halihazırda Mevcut Değilse Yeni Bir Belge Ekleyin
İsteğe bağlı bağımsız değişken, bu yöntemin davranışını değiştirmek için kullanılabilir. Böyle bir seçenek “ yükseltmek ' sorguda tanımlanan seçim kriterlerini karşılayan mevcut bir belge yoksa yeni bir belge ekler.
Mevcut hiçbir belgeyi karşılamayan seçim kriterlerini tanımlayarak yeni bir belge eklemeye çalışalım. Bundan sonra, bunun için bazı alanlar ayarlayın ve “ seçeneğini ekleyin. yükseltmek ” aşağıda verilen komutta gösterildiği gibi “true” olarak:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Davut' } , { $set : { Modelleme_Ücreti: 10000 , Model_Yaşı: 23 , 'Model_Name.Last_Name' : 'Smith' } } , { ek: doğru } ) Çıktı
Çıktı, onaylanan mesajın doğru olduğunu gösterdi.
Son olarak, bu komutu çalıştırarak değişikliğini doğrulayın:
db.Linuxhint_Col2.find ( { 'Model_Adı.First_Name' : 'Davut' } ) Çıktı
Çıktı, yeni belgenin başarıyla eklendiğini gösteriyordu.
Çözüm
“ db.collection.updateOne() Seçim kriterlerini karşılayan ilk belgeyi güncellemek için MongoDB'de ” yöntemi kullanılır. '' gibi güncelleme işleçlerini kullanarak bir belgedeki tek bir alanın yanı sıra birden çok alanı değiştirebilir. $set ' Ve ' $inc ”. Ayrıca bu yöntem, yöntemin davranışını değiştirmek için ' gibi isteğe bağlı bağımsız değişkenleri de kabul eder. yükseltmek seçim kriterlerinin mevcut herhangi bir belgeyle eşleşmemesi durumunda yeni bir belge ekler. Bu gönderi, “ db.collection.updateOne() ” yöntemi MongoDB'de.