Bu kullanışlı kılavuzun yardımıyla MongoDB sorguları ve işlemleri hakkında bilgi edinin.

MongoDB, profesyonel gelişim için en çok arzu edilen ve beğenilen NoSQL veritabanlarından biridir. Esnekliği, ölçeklenebilirliği ve büyük hacimli verileri işleme yeteneği, onu modern uygulamalar için en iyi seçenek haline getiriyor. MongoDB'nin normal sorgularında ve işlemlerinde uzmanlaşmak istiyorsanız doğru yerdesiniz.

Verileri verimli bir şekilde almak ve işlemek, sağlam veri modelleri uygulamak veya duyarlı oluşturmak istiyor olun uygulamaları, yaygın MongoDB sorguları ve işlemleri hakkında derin bir anlayış edinmek, hiç şüphesiz işinizi geliştirecektir. yetenekler.

1. Veritabanları Oluşturma veya Değiştirme

Özellikle bir uzak küme ayarladıysanız, MongoDB Kabuğu aracılığıyla yerel olarak bir veritabanı oluşturmak kolaydır. ile MongoDB'de yeni bir veritabanı oluşturabilirsiniz. kullanmak emretmek:

use db_name

Yukarıdaki komut yeni bir veritabanı oluştururken, sıfırdan yeni bir veritabanı oluşturmadan mevcut bir veritabanına geçiş yapmak için kullanabilirsiniz.

instagram viewer

2. Veritabanını Bırak

Önce, kullanarak bırakmak istediğiniz veritabanına geçin. kullanmak daha önce yapıldığı gibi komut. Ardından veritabanını kullanarak bırakın dropDatabase() emretmek:

use db_name
db.dropDatabase()

3. Bir Koleksiyon Oluştur

Bir koleksiyon oluşturmak için hedef veritabanına geçin. Kullan koleksiyon oluştur() yeni bir MongoDB koleksiyonu oluşturmak için anahtar kelime:

db.createCollection("collection_name")

Yer değiştirmek koleksiyon_adı seçtiğiniz koleksiyon adıyla.

4. Bir Koleksiyona Belge Ekleme

Bir koleksiyona veri gönderirken tek bir belge veya bir dizi belge ekleyebilirsiniz.

Tek bir belge eklemek için:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Tek bir kimliğe sahip bir dizi belge eklemek için yukarıdaki yöntemi de kullanabilirsiniz:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Her birinin ayrı kimliği olan çok sayıda belgeyi aynı anda eklemek için ekleBirçok anahtar kelime:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Bir Koleksiyondan Tüm Belgeleri Alın

kullanarak bir koleksiyondaki tüm belgeleri sorgulayabilirsiniz. bulmak() anahtar kelime:

db.collection_name.find()

Yukarıdaki, belirtilen koleksiyon içindeki tüm belgeleri döndürür:

Döndürülen verileri belirli bir sayıyla da sınırlayabilirsiniz. Örneğin, yalnızca ilk iki belgeyi almak için aşağıdaki komutu kullanabilirsiniz:

db.collection_name.find().limit(2)

6. Bir Koleksiyondaki Belgeleri Filtreleme

MongoDB'de belgeleri filtrelemenin birçok yolu vardır. Örneğin, aşağıdaki verileri göz önünde bulundurun:

Bir belgede yalnızca belirli bir alanı sorguluyorsanız, bulmak yöntem:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Yukarıdaki, değerinin olduğu tüm belgeleri döndürür. Seviyor dır-dir kelime. Yalnızca adları verir ve belge kimliğini yok sayar.

Bir koleksiyonu sayısal bir faktöre göre de filtreleyebilirsiniz. 21 yaşından büyük tüm kullanıcıların adlarını almak istediğinizi varsayalım, $gt Şebeke:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Çıktı şöyle görünür:

değiştirmeyi dene bulmak ile Birini bul ne olduğunu görmek için. Ancak, başka birçok filtreleme anahtar kelimesi vardır:

  • lt $: Belirtilen değerden küçük tüm değerler.
  • $gte: Belirtilen değere eşit veya daha büyük değerler.
  • $ lte: Tanımlanan değerden küçük veya ona eşit değerler.
  • $ eq: Belirtilen değere eşit tüm değerleri alır.
  • $ ne: Tüm değerler belirtilen değere eşit değil.
  • $ in: Bir diziye dayalı sorgulama yaparken bunu kullanın. Dizideki herhangi bir öğeyle eşleşen tüm değerleri alır. bu 9 $ anahtar kelime bunun tersini yapar.

7. Sorguları Sırala

Sıralama, sorgunun belirli bir sırada düzenlenmesine yardımcı olur. Azalan veya artan düzende sıralayabilirsiniz. Sıralamanın sayısal bir referans gerektirdiğini unutmayın.

Örneğin, artan düzende sıralamak için:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Yukarıdaki sorguyu azalan düzende sıralamak için "1"i "-1" ile değiştirin.

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Belge Güncelleme

MongoDB güncellemeleri, güncellemenin nasıl yapılmasını istediğinizi belirtmek için atomik operatörler gerektirir. Bir güncelleme sorgusu ile eşleştirebileceğiniz yaygın olarak kullanılan atomik işleçlerin bir listesi:

  • $set: Yeni bir alan ekleyin veya mevcut bir alanı değiştirin.
  • $itme: Bir diziye yeni bir öğe ekleyin. ile eşleştirin $her biri aynı anda birçok öğe eklemek için operatör.
  • $çekme: Bir diziden bir öğeyi kaldırın. ile kullan $ in tek seferde birçok öğeyi kaldırmak için.
  • $unset: Belgeden bir alanı kaldırın.

Bir belgeyi güncellemek ve yeni bir alan eklemek için, örneğin:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Yukarıdaki, belirtilen belgeyi gösterildiği gibi günceller:

E-posta alanını kaldırmak, $unset Şebeke:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Aşağıdaki örnek verileri göz önünde bulundurun:

Mevcut olana bir öğe ekleyebilirsiniz. öğeler kullanarak dizi alanı $itme Şebeke:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

İşte çıktı:

Kullan $her biri aynı anda birçok öğe eklemek için operatör:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

İşte çıktı:

Bahsedildiği gibi, $çekme operatörü bir diziden bir öğeyi kaldırır:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Güncellenen veriler şöyle görünür:

Dahil et $ in bir dizideki birçok öğeyi tek seferde kaldırmak için anahtar kelime:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Belge veya Alan Silme

bu silBir veya birçok kişiyi sil anahtar kelime, bir koleksiyondaki bir belgeyi çöpe atar. Kullanmak silBir belirli bir alana dayalı bir belgeyi kaldırmak için:

db.collection_name.deleteOne({"Name":"IDNoble"})

Anahtarları ortak olan birçok belgeyi silmek istiyorsanız, şunu kullanın: birçok kişiyi sil yerine. Aşağıdaki sorgu, içeren tüm belgeleri siler. Satranç onların olarak Seviyor.

db.collection.deleteMany({"Likes":"Chess"})

10. İndeksleme İşlemi

İndeksleme, MongoDB'nin taraması gereken belge sayısını düzene koyarak sorgu performansını artırır. Daha sık sorguladığınız alanlarda bir dizin oluşturmak genellikle en iyisidir.

MongoDB endeksleme, sizin yaptığınıza benzer SQL sorgularını optimize etmek için dizinleri kullanın. Örneğin, üzerinde artan bir dizin oluşturmak için İsim alan:

db.collection.createIndex({"Name":1})

Dizinlerinizi listelemek için:

db.collection.getIndexes()

Yukarıdakiler sadece bir önsözdür. için birkaç başka yöntem daha vardır. MongoDB'de bir dizin oluşturma.

11. Toplama

MapReduce'un geliştirilmiş bir sürümü olan toplama işlem hattı, karmaşık hesaplamaları MongoDB içinden çalıştırmanıza ve depolamanıza olanak tanır. Haritayı ve azaltma işlevlerini ayrı ayrı yazmayı gerektiren MapReduce'tan farklı olarak JavaScript işlevleri, toplama basittir ve yalnızca yerleşik MongoDB yöntemlerini kullanır.

Örneğin, aşağıdaki satış verilerini göz önünde bulundurun:

MongoDB'nin toplamasını kullanarak, her bir kategori için satılan toplam ürün sayısını aşağıdaki şekilde hesaplayabilir ve saklayabilirsiniz:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Yukarıdaki sorgu aşağıdakileri döndürür:

Ana MongoDB Sorguları

MongoDB, sorgu performansını iyileştirmeye yönelik özellikler de dahil olmak üzere birçok sorgulama yöntemi sunar. Programlama diliniz ne olursa olsun, yukarıdaki sorgu yapıları bir MongoDB veritabanıyla etkileşim kurmak için temeldir.

Bununla birlikte, temel sözdizimlerinde bazı tutarsızlıklar olabilir. Örneğin, Python gibi bazı programlama dilleri yılan vakalarını tanırken JavaScript dahil diğerleri deve vakasını kullanır. Seçtiğiniz teknoloji için neyin işe yaradığını araştırdığınızdan emin olun.