Count() ve Remove() İşlevleri MongoDB Örnek ile

⚡ Akıllı Özet

Count() ve Remove() fonksiyonları MongoDB Bir koleksiyondaki belge sayısını rapor eder ve koleksiyondan belgeleri siler. `count()` metodu toplam belge sayısını döndürürken, `remove()` metodu tüm belgeleri veya yalnızca belirtilen bir koşula uyan belgeleri siler.

  • 🔢 Belgeleri sayın: `count()` metodu, bir koleksiyondaki veya bir sorguyla eşleşen belge sayısını döndürür.
  • 🎯 Filtre ile Sayım: `count()` fonksiyonuna bir koşul geçirmek, yalnızca bu koşulu sağlayan belgeleri rapor eder.
  • 🗑️ Belgeleri Kaldır: remove() metodu, belgelerin tamamını veya bir kriter nesnesine uyanları siler.
  • ☝️ Birini Kaldır: justOne seçeneği, remove() işlevinin tüm eşleşmeleri silmek yerine yalnızca tek bir eşleşen belgeyi silmesini sınırlandırır.
  • 🔄 Modern Yöntemler: countDocuments() ve deleteMany() fonksiyonları, kullanımdan kaldırılan count() ve remove() fonksiyonlarının güncel alternatifleridir.
  • 🖨️ Çıktıyı Doğrula: Her komut, kaldırılan belge sayısını gösteren bir sonuç döndürür.

Count() ve Remove() İşlevleri MongoDB

MongoDB Count() İşlevi

Toplama kavramı, bir sorguda döndürülen sonuçlar üzerinde bir hesaplama yapmaktır. Örneğin, tetiklenen sorguya göre bir koleksiyondaki belge sayısının ne kadar olduğunu bilmek istediğinizi varsayalım. MongoDB count() işlevini sağlar.

Örnek MongoDB Count() İşlevi

Bunun bir örneğine bakalım.

db.Employee.count()

Code Açıklama:

  • Yukarıdaki kod sayma fonksiyonunu çalıştırır.

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

Çıktı:

Örnek MongoDB Count() İşlevi

Çıktı açıkça koleksiyonda 4 belgenin bulunduğunu gösteriyor.

MongoDB Sorgu Koşulu ile Sayım

`count()` metodu, bir sorgu koşulu belirttiğinizde en kullanışlıdır; bu sayede tüm koleksiyon yerine yalnızca eşleşen belgeleri sayar. Bu, bir departmana kaç çalışanın ait olduğu veya kaç siparişin hala açık olduğu gibi raporlar için faydalıdır.

Aşağıdaki örnek, Employeeid değeri 2'den büyük olan çalışanların sayısını göstermektedir:

db.Employee.count({Employeeid:{$gt:2}})

İşte olan:

  • {Employeeid:{$gt:2}} sorgu nesnesi, $gt (büyüktür) operatörünü kullanarak bir filtre görevi görür.
  • `count()` fonksiyonu yalnızca filtreyi sağlayan belge sayısını döndürür.
  • Koleksiyonun geri kalanı toplam hesaplamada dikkate alınmaz.

Mevcut MongoDB Sürümlerde, koşullu sayım için önerilen yöntem countDocuments()'tır çünkü her zaman doğru bir sonuç döndürür. Aynı sorgu onunla da çalışır:

db.Employee.countDocuments({Employeeid:{$gt:2}})

Her iki komut da tek bir sayı döndürür; bu sayıyı bir değişkene kaydedebilir veya doğrudan görüntüleyebilirsiniz. Sorgulanan alana eşleşen bir indeks eklemek, büyük veri kümelerinde koşullu sayımları hızlandırır.

Değişikliklerin Gerçekleştirilmesi

Diğer iki işlem sınıfı MongoDB güncelleme ve kaldırma ifadeleridir.

Güncelleme işlemleri, mevcut verilerin değiştirilmesine olanak tanır ve kaldırma işlemleri, bir koleksiyondan verilerin silinmesine olanak tanır.

Remove() İşlevi MongoDB

In MongoDB, db.collection.remove() Bir koleksiyondan belgeleri kaldırmak için kullanılan yöntem. Koleksiyondan tüm belgeler kaldırılabileceği gibi yalnızca belirli bir koşulla eşleşen belgeler de kaldırılabilir.

Yalnızca kaldırma komutunu verirseniz tüm belgeler koleksiyondan kaldırılacaktır.

Örnek MongoDB Kaldır() İşlevi

Aşağıdaki kod örneği, belirli bir belgenin koleksiyondan nasıl kaldırılacağını göstermektedir.

db.Employee.remove({Employeeid:22})

Code Açıklama:

  • Yukarıdaki kod, kaldırma işlevini kullanır ve bu durumda Çalışan kimliği 22 olan belgeleri kaldırmak için gereken kriterleri belirtir.

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

Çıktı:

Örnek MongoDB Kaldır() İşlevi

Çıktıda 1 belgenin silindiği görülecektir.

Tüm Belgeleri Silme ile Tek Bir Belgeyi Silme Arasındaki Fark

`remove()` metodu, ilettiğiniz argümanlara bağlı olarak eşleşen tüm belgeleri veya yalnızca birini silebilir. Aradaki farkı anlamak, kazara veri kaybını önler.

Bir koleksiyondaki tüm belgeleri silmek için boş bir koşul belirtin:

db.Employee.remove({})

Bu işlem tüm belgeleri siler ancak koleksiyonun kendisini korur. Yalnızca bir koşula uyan belgeleri kaldırmak için, daha önce {Employeeid:22} ile gösterildiği gibi bir sorgu nesnesi geçirin. Birden fazla belge eşleşiyorsa ve yalnızca ilkini silmek istiyorsanız, justOne seçeneğini ekleyin:

db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})

Temel farklar şunlardır:

  • remove({}) koleksiyondaki tüm belgeleri siler.
  • remove({condition}) koşulu sağlayan her belgeyi siler.
  • remove({condition}, {justOne:true}) yalnızca ilk eşleşen belgeyi siler.

Silme komutunu çalıştırmadan önce koşulu daima iki kez kontrol edin, çünkü boş veya yanlış bir filtre tüm koleksiyonu silebilir. Modern sistemlerde MongoDBdeleteOne() ve deleteMany() fonksiyonları bu kalıpların yerini alarak amacı daha net hale getirir.

count() ve remove() fonksiyonlarına modern alternatifler

Hem `count()` hem de `remove()` eski yöntemlerdir. Daha yeni yöntemler. MongoDB Sürücüler bunları kullanımdan kaldırılmış olarak işaretler ve daha net alternatifler sunar. Aşağıdaki tablo, her eski yöntemi modern karşılığıyla eşleştirir:

Miras Yöntemi Modern Değişim Amaç
Miktar() Belge sayısını say() Eşleşen belgelerin doğru sayısını döndürür.
Miktar() tahminiBelgeSayısı() Tüm belgelerin hızlı ve yaklaşık sayısını döndürür.
Kaldır() deleteOne() Filtreye uyan ilk belgeyi siler.
Kaldır() deleteMany() Filtreye uyan tüm belgeleri siler.

Yeni uygulamalar için bu modern yöntemleri tercih edin. Bunlar, saymayı tahmin etmekten ve tek bir belgeyi silmeyi birçok belgeyi silmekten ayırır; bu da sorguları daha güvenli ve okunması daha kolay hale getirir. Eski count() ve remove() fonksiyonları, eski eğitimler ve komut dosyaları için hala çalışmaktadır.

SSS

`remove()` fonksiyonu belgeleri siler ancak koleksiyonu ve indekslerini korur. `drop()` fonksiyonu ise tüm koleksiyonu, her belge ve indeks dahil olmak üzere siler. Veri silmek için `remove`, koleksiyonu tamamen atmak için ise `drop` kullanın.

Hayır. remove() yalnızca koleksiyon içindeki belgeleri siler. Koleksiyon, indeksleri ve yapılandırması yerinde kalır, bu nedenle daha sonra aynı koleksiyona yeniden oluşturmadan yeni belgeler ekleyebilirsiniz.

Eski `count()` fonksiyonu, başarısız işlemlerden sonra parçalı kümelerde yaklaşık bir değer döndürebilir. Tam bir toplam için, toplama işlemi gerçekleştiren `countDocuments()` fonksiyonunu kullanın; hız hassasiyetten daha önemliyse `estimatedDocumentCount()` fonksiyonunu kullanın.

Yapay zeka, basit bir isteği doğru filtreyle doğru sayım veya silme sorgusuna çevirebilir ve silme komutunun tüm belgeleri etkileyeceği durumlarda sizi uyarabilir. Çalıştırmadan önce her zaman gözden geçirin.

Evet. Yapay zeka, bir remove veya deleteMany komutunu inceleyebilir, tüm koleksiyonu temizleyecek eksik bir filtreyi işaretleyebilir ve çalıştırmadan önce bir koşul eklemeyi veya yedekleme almayı önerebilir.

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