Takip et

MongoDB Shell’i Kullanmaya Başlangıç: Temellerden İleri Seviyeye

MongoDB Shell’i Kullanmaya Başlangıç: Temellerden İleri Seviyeye MongoDB, modern uygulamaların veri depolama ihtiyaçlarını karşılamak üzer

MongoDB Shell’i Kullanmaya Başlangıç: Temellerden İleri Seviyeye

MongoDB, modern uygulamaların veri depolama ihtiyaçlarını karşılamak üzere tasarlanmış popüler bir NoSQL veritabanıdır. Esnek şema yapısı, yüksek performans ve yatay ölçeklenebilirlik gibi özellikleriyle öne çıkar. MongoDB ile etkileşim kurmanın en doğrudan ve güçlü yollarından biri, MongoDB Shell’dir. Bu makale, MongoDB Shell’in temel kullanımından ileri seviye özelliklerine kadar geniş bir yelpazeyi kapsayarak, veritabanı yöneticileri ve geliştiricilerin bu güçlü aracı etkin bir şekilde kullanmalarına yardımcı olmayı amaçlamaktadır.

Giriş: MongoDB Shell Nedir ve Neden Önemlidir?

MongoDB Shell, MongoDB veritabanı ile etkileşim kurmak için kullanılan interaktif bir JavaScript arayüzüdür. Komut satırından çalışır ve veritabanı işlemleri, sorgulama, yönetim görevleri ve betik çalıştırma gibi birçok farklı amaç için kullanılabilir. Eski mongo kabuğunun yerini alan mongosh, geliştirilmiş özellikler, daha iyi hata mesajları, akıllı otomatik tamamlama ve sözdizimi vurgulama gibi modern geliştirmelerle birlikte gelir.

MongoDB Shell’in önemi birkaç ana noktada toplanabilir:

* Doğrudan Etkileşim: Veritabanına doğrudan bağlanarak anında sorgular çalıştırabilir, veri ekleyebilir, güncelleyebilir ve silebilirsiniz.
* Yönetim Kolaylığı: Veritabanı ve koleksiyon oluşturma, indeks yönetimi, kullanıcı yönetimi, replika setleri ve shard cluster yönetimi gibi idari görevleri kolayca gerçekleştirebilirsiniz.
* Geliştirme ve Hata Ayıklama: Uygulama geliştirenler, veritabanı etkileşimlerini test etmek, sorguları optimize etmek ve hataları ayıklamak için shell’i etkin bir şekilde kullanabilirler.
* Betik Oluşturma: Tekrarlayan görevleri otomatikleştirmek veya karmaşık veri manipülasyonları yapmak için JavaScript betikleri yazıp çalıştırabilirsiniz.
* Öğrenme ve Keşif: MongoDB’nin veri modelini ve sorgu dilini öğrenmek için mükemmel bir araçtır.

Bu makale boyunca, mongosh‘un kurulumundan başlayarak, temel CRUD (Create, Read, Update, Delete) operasyonlarına, indeks yönetimine, agregasyon çerçevesine ve daha ileri seviye özelliklere kadar adım adım ilerleyeceğiz.

Kurulum ve İlk Adımlar

MongoDB Shell’i kullanmaya başlamadan önce, sisteminizde MongoDB sunucusunun (mongod) ve MongoDB Shell’in (mongosh) kurulu olması gerekir. Genellikle mongosh, MongoDB sunucusu ile birlikte dağıtılır, ancak ayrı olarak da kurulabilir.

MongoDB Shell Kurulumu

Eğer MongoDB sunucusunu kurduysanız, mongosh genellikle PATH’inize eklenmiş olmalıdır. Kurulumunuzu kontrol etmek için bir terminal veya komut istemcisi açıp aşağıdaki komutu çalıştırabilirsiniz:

mongosh --version

Eğer komut bulunamazsa veya sürüm bilgisi gelmezse, mongosh‘u resmi MongoDB web sitesinden veya paket yöneticiniz aracılığıyla (örn. brew macOS’ta, apt Ubuntu’da) ayrı olarak indirip kurmanız gerekebilir.

Shell’i Başlatma ve Bağlantı Kurma

mongosh‘u başlatmak ve bir MongoDB sunucusuna bağlanmak oldukça basittir.

Varsayılan Bağlantı:
Eğer MongoDB sunucunuz varsayılan port olan 27017 üzerinde ve yerel makinenizde çalışıyorsa, sadece mongosh yazarak bağlanabilirsiniz:

mongosh

Bu komut, mongodb://127.0.0.1:27017 adresine bağlanmaya çalışacaktır.

Farklı Host ve Port Belirtme:
Eğer veritabanı sunucunuz farklı bir IP adresinde veya portta çalışıyorsa, host ve port parametrelerini kullanmanız gerekir:

mongosh --host  --port 

Örneğin:

mongosh --host 192.168.1.100 --port 27018

Kimlik Doğrulama ile Bağlanma:
Eğer MongoDB sunucunuz kimlik doğrulama gerektiriyorsa, kullanıcı adı ve parola ile bağlanmanız gerekir:

mongosh --username  --password  --authenticationDatabase 

--authenticationDatabase genellikle kullanıcı bilgilerinin saklandığı admin veritabanı olur. Parolanızı komut satırında açıkça belirtmek yerine, mongosh genellikle parola girmeniz için sizi uyaracaktır.

mongosh --username myUser --authenticationDatabase admin

Bu komutu çalıştırdığınızda, sizden parolanızı girmeniz istenecektir.

Bağlantı başarılı olduğunda, mongosh prompt’unu göreceksiniz (örn. test>). Bu, komutlarınızı girmeye hazır olduğunuz anlamına gelir.

Temel Shell Komutları ve Veritabanı İşlemleri

Bağlantı kurduktan sonra, MongoDB Shell ile veritabanı ve koleksiyon düzeyinde çeşitli işlemler yapabiliriz.

Veritabanları ile Çalışma

* Mevcut Veritabanlarını Listeleme:

show dbs

Bu komut, sunucudaki tüm veritabanlarını ve boyutlarını listeler.

* Veritabanı Seçme veya Oluşturma:

use 

Eğer belirtilen veritabanı mevcutsa, o veritabanına geçiş yapar. Eğer mevcut değilse, o isimde yeni bir veritabanı oluşturur (ilk veri eklendiğinde fiziksel olarak oluşur).

Örnek:

use myDatabase

Artık myDatabase içindeyiz. Prompt myDatabase> olarak değişecektir.

* Mevcut Veritabanını Gösterme:

db

Bu komut, şu anda hangi veritabanında olduğunuzu gösterir.

* Veritabanını Silme:

db.dropDatabase()

Bu komut, şu anda seçili olan veritabanını ve tüm koleksiyonlarını kalıcı olarak siler. Dikkatli kullanılmalıdır!

Koleksiyonlar ile Çalışma

MongoDB’de veriler koleksiyonlar içinde saklanır. Koleksiyonlar, ilişkisel veritabanlarındaki tablolara benzer.

* Mevcut Koleksiyonları Listeleme:

show collections

Seçili veritabanındaki tüm koleksiyonları listeler.

* Koleksiyon Oluşturma:
Koleksiyonlar genellikle ilk belge eklendiğinde otomatik olarak oluşturulur. Ancak, özel seçeneklerle (örn. sabit boyutlu koleksiyon – capped collection) manuel olarak da oluşturulabilir:

db.createCollection("myCollection", { capped: true, size: 100000 })

Bu komut, 100KB boyutunda bir myCollection adında sabit boyutlu bir koleksiyon oluşturur.

* Koleksiyonu Silme:

db..drop()

Belirtilen koleksiyonu ve içerdiği tüm belgeleri siler. Yine dikkatli kullanılmalıdır!

Örnek:

db.myCollection.drop()

CRUD Operasyonları

CRUD, Create (Ekleme), Read (Okuma), Update (Güncelleme) ve Delete (Silme) işlemlerini ifade eder ve veritabanı etkileşimlerinin temelini oluşturur.

Create (Ekleme)

MongoDB’de veriler, BSON (Binary JSON) formatında belgeler olarak saklanır. Belgeler, anahtar-değer çiftlerinden oluşur ve JSON’a oldukça benzer.

* Tek Belge Ekleme:
insertOne() metodu, bir koleksiyona tek bir belge eklemek için kullanılır.

db.users.insertOne({
        name: "Alice",
        age: 30,
        email: "alice@example.com",
        address: {
            street: "123 Main St",
            city: "Anytown",
            zip: "12345"
        },
        hobbies: ["reading", "hiking"]
    })

MongoDB, her belgeye otomatik olarak benzersiz bir _id alanı atar.

* Birden Fazla Belge Ekleme:
insertMany() metodu, bir dizi belgeyi tek bir işlemde eklemek için kullanılır.

db.products.insertMany([
        { name: "Laptop", price: 1200, category: "Electronics", inStock: true },
        { name: "Mouse", price: 25, category: "Electronics", inStock: true },
        { name: "Keyboard", price: 75, category: "Electronics", inStock: false }
    ])

Read (Okuma/Sorgulama)

MongoDB’nin güçlü sorgulama yetenekleri, belirli kriterlere uyan belgeleri bulmanızı sağlar.

* Tüm Belgeleri Bulma:
find() metodu, bir koleksiyondaki tüm belgeleri döndürür.

db.users.find()

Bu, belgeleri okunabilir bir formatta döndürür. Daha güzel bir çıktı için pretty() metodunu zincirleyebilirsiniz:

db.users.find().pretty()

* Tek Belge Bulma:
findOne() metodu, sorgu kriterlerine uyan ilk belgeyi döndürür.

db.users.findOne({ name: "Alice" })

* Filtreleme (Sorgu Kriterleri):
find() metoduna bir sorgu belgesi (JSON nesnesi) geçirerek belirli kriterlere uyan belgeleri filtreleyebilirsiniz.

db.products.find({ category: "Electronics", price: { $gt: 50 } })

Bu sorgu, kategorisi “Electronics” olan ve fiyatı 50’den büyük olan ürünleri bulur. $gt (greater than) gibi sorgu operatörleri kullanılır.

* Sorgu Operatörleri:
MongoDB, zengin bir sorgu operatörleri setine sahiptir:
* Karşılaştırma: $eq (eşit), $ne (eşit değil), $gt (büyük), $gte (büyük veya eşit), $lt (küçük), $lte (küçük veya eşit), $in (dizide), $nin (dizide değil).
* Mantıksal: $and, $or, $not, $nor.
* Eleman: $exists (alan var mı), $type (alanın tipi).
* Dizi: $all (tüm elemanları içerir), $size (dizi boyutu), $elemMatch (dizi elemanlarının tüm kriterleri karşılaması).
* Regex: $regex (düzenli ifade eşleşmesi).

Örnekler:

// Yaşı 25 ile 35 arasında olan kullanıcılar
    db.users.find({ age: { $gte: 25, $lte: 35 } })

    // Adı "Alice" VEYA yaşı 40'tan büyük olan kullanıcılar
    db.users.find({ $or: [{ name: "Alice" }, { age: { $gt: 40 } }] })

    // Adresinde "Main St" içeren kullanıcılar
    db.users.find({ "address.street": /Main St/i }) // 'i' case-insensitive yapar

* Projeksiyon (Alan Seçimi):
find() metodunun ikinci parametresi, hangi alanların döndürüleceğini belirtmek için kullanılır. 1 ile dahil edilir, 0 ile hariç tutulur (ancak _id varsayılan olarak dahildir, hariç tutmak için 0 vermelisiniz).

// Sadece isim ve email alanlarını getir, _id'yi hariç tut
    db.users.find({}, { name: 1, email: 1, _id: 0 })

* Sıralama, Limit ve Atlatma:
* sort(): Sonuçları belirli bir alana göre sıralar (1 artan, -1 azalan).
* limit(): Döndürülecek belge sayısını sınırlar.
* skip(): Belirtilen sayıda belgeyi atlar (sayfalandırma için kullanışlıdır).

// Yaşa göre azalan sırada ilk 5 kullanıcıyı getir
    db.users.find().sort({ age: -1 }).limit(5)

    // İkinci sayfadaki (10 belge/sayfa) kullanıcıları getir
    db.users.find().sort({ name: 1 }).skip(10).limit(10)

Update (Güncelleme)

Belgelerdeki verileri değiştirmek için güncelleme operasyonları kullanılır.

* Tek Belgeyi Güncelleme:
updateOne() metodu, sorgu kriterlerine uyan ilk belgeyi günceller. Genellikle $set operatörü kullanılır.

db.users.updateOne(
        { name: "Alice" }, // Sorgu kriteri
        { $set: { age: 31, "address.city": "Newtown" } } // Güncelleme operasyonu
    )

Eğer age alanı yoksa, $set onu oluşturur.

* Birden Fazla Belgeyi Güncelleme:
updateMany() metodu, sorgu kriterlerine uyan tüm belgeleri günceller.

db.products.updateMany(
        { category: "Electronics", inStock: true },
        { $inc: { price: 10 } } // Fiyatı 10 artır
    )

$inc operatörü, sayısal bir alanı belirli bir miktar kadar artırır veya azaltır.

* Güncelleme Operatörleri:
* $set: Bir alanın değerini ayarlar veya yeni bir alan ekler.
* $unset: Bir alanı belgeden kaldırır.
* $inc: Sayısal bir alanın değerini artırır veya azaltır.
* $push: Bir diziye eleman ekler.
* $pull: Bir diziden elemanları kaldırır.
* $addToSet: Bir diziye yalnızca benzersiz elemanlar ekler.
* $rename: Bir alanın adını değiştirir.

Örnek:

// Alice'in hobilerine "gardening" ekle (eğer yoksa)
    db.users.updateOne(
        { name: "Alice" },
        { $addToSet: { hobbies: "gardening" } }
    )

    // Alice'in email alanını kaldır
    db.users.updateOne(
        { name: "Alice" },
        { $unset: { email: "" } }
    )

Delete (Silme)

Belgeleri koleksiyonlardan silmek için kullanılır.

* Tek Belge Silme:
deleteOne() metodu, sorgu kriterlerine uyan ilk belgeyi siler.

db.products.deleteOne({ name: "Keyboard" })

* Birden Fazla Belge Silme:
deleteMany() metodu, sorgu kriterlerine uyan tüm belgeleri siler.

db.users.deleteMany({ age: { $lt: 20 } }) // Yaşı 20'den küçük tüm kullanıcıları sil

* Tüm Belgeleri Silme:
Bir koleksiyondaki tüm belgeleri silmek için boş bir sorgu belgesi kullanabilirsiniz:

db.myCollection.deleteMany({})

Bu, db.myCollection.drop()‘a göre daha yavaştır çünkü her belge için ayrı ayrı işlem yapar. Koleksiyonu tamamen silmek yerine sadece içeriğini boşaltmak istiyorsanız tercih edilebilir.

İleri Seviye Shell Kullanımı ve Özellikler

MongoDB Shell, temel CRUD işlemlerinin ötesinde, veritabanı yönetimi ve karmaşık veri analizi için bir dizi güçlü özellik sunar.

İndeksler

İndeksler, MongoDB’de sorgu performansını artırmak için hayati öneme sahiptir. İlişkisel veritabanlarındaki indekslere benzer şekilde çalışırlar.

* İndeks Oluşturma:
createIndex() metodu, bir koleksiyonda indeks oluşturur. İlk parametre indekslenecek alanı (veya alanları), ikinci parametre ise indeks seçeneklerini (örn. unique, sparse, background) belirtir.

// 'email' alanında tekil (unique) bir indeks oluştur
    db.users.createIndex({ email: 1 }, { unique: true })

    // 'category' ve 'price' alanlarında bileşik indeks oluştur
    db.products.createIndex({ category: 1, price: -1 })

1 artan sıralama, -1 azalan sıralama anlamına gelir.

* Mevcut İndeksleri Listeleme:

db.users.getIndexes()

Bu komut, bir koleksiyondaki tüm indeksleri listeler.

* İndeks Silme:
dropIndex() metodu, bir indeksi siler. İndeksin adını veya indeks tanımını kullanarak silebilirsiniz.

// İndeks adıyla silme (genellikle indekslenen alanın ve sıralamanın birleşimi olur)
    db.users.dropIndex("email_1")

    // İndeks tanımıyla silme
    db.products.dropIndex({ category: 1, price: -1 })

Tüm indeksleri silmek için dropIndexes() kullanılabilir (ancak _id indeksi silinmez).

Agregasyon Çerçevesi

Agregasyon Çerçevesi, verileri işlemek ve analiz etmek için güçlü bir araçtır. Verileri bir dizi aşamadan (pipeline) geçirerek dönüştürmenize ve toplamanıza olanak tanır.

* aggregate() Metodu:
aggregate() metodu, bir dizi agregasyon aşamasını parametre olarak alır.

db.orders.aggregate([
        { $match: { status: "completed" } }, // Sadece tamamlanmış siparişleri filtrele
        { $group: { // Müşteri başına toplam geliri hesapla
            _id: "$customerId",
            totalRevenue: { $sum: "$amount" },
            orderCount: { $sum: 1 }
        }},
        { $sort: { totalRevenue: -1 } }, // Toplam gelire göre azalan sırada sırala
        { $limit: 5 } // En çok harcayan ilk 5 müşteriyi getir
    ])

* Yaygın Agregasyon Aşamaları:
* $match: Belgeleri filtreler (sorgu operatörleri ile aynı).
* $project: Belgelerin yapısını yeniden şekillendirir, alanları dahil eder/hariç tutar, yeni alanlar hesaplar.
* $group: Belgeleri belirli bir alana göre gruplar ve grup başına toplama işlemleri yapar ($sum, $avg, $min, $max, $push, $addToSet).
* $sort: Belgeleri sıralar.
* $limit: Belge sayısını sınırlar.
* $skip: Belirli sayıda belgeyi atlar.
* $unwind: Bir diziyi “açar”, dizideki her eleman için ayrı bir belge oluşturur.
* $lookup: Diğer koleksiyonlardan veri birleştirir (SQL JOIN benzeri).

Agregasyon, karmaşık raporlama ve veri analizi için vazgeçilmezdir.

Kullanıcılar ve Rol Yönetimi

Güvenli bir MongoDB ortamı için kullanıcı ve rol yönetimi kritik öneme sahiptir.

* Kullanıcı Oluşturma:
createUser() metodu, yeni bir kullanıcı oluşturur ve ona roller atar.

db.createUser(
        {
            user: "myAppUser",
            pwd: passwordPrompt(), // Parolayı güvenli bir şekilde ister
            roles: [
                { role: "readWrite", db: "myDatabase" },
                { role: "read", db: "admin" }
            ]
        }
    )

passwordPrompt() kullanımı, parolanın komut geçmişinde görünmesini engeller.

* Roller Atama/İptal Etme:
* grantRolesToUser(): Mevcut bir kullanıcıya yeni roller atar.
* revokeRolesFromUser(): Bir kullanıcının rollerini iptal eder.

db.grantRolesToUser(
        "myAppUser",
        [{ role: "dbAdmin", db: "myDatabase" }]
    )

    db.revokeRolesFromUser(
        "myAppUser",
        [{ role: "read", db: "admin" }]
    )

* Kullanıcı Silme:

db.dropUser("myAppUser")

Yedekleme ve Geri Yükleme (Shell Dışı Araçlar)

MongoDB Shell doğrudan yedekleme ve geri yükleme yapmasa da, genellikle shell ile birlikte kullanılan komut satırı araçları olan mongodump ve mongorestore‘dan bahsetmek önemlidir.

* mongodump: MongoDB veritabanlarını veya koleksiyonlarını BSON formatında yedeklemek için kullanılır.

mongodump --db myDatabase --out /path/to/backup/directory

* mongorestore: mongodump ile oluşturulan yedekleri geri yüklemek için kullanılır.

mongorestore --db myDatabase --drop /path/to/backup/directory/myDatabase

--drop seçeneği, geri yüklemeden önce mevcut veritabanını siler.

Ayrıca, verileri JSON veya CSV formatında dışa ve içe aktarmak için mongoexport ve mongoimport araçları da mevcuttur.

JavaScript Entegrasyonu

MongoDB Shell, JavaScript motorunu kullanarak çalışır. Bu, shell içinde karmaşık betikler yazmanıza ve çalıştırmanıza olanak tanır.

* Shell’de JavaScript Çalıştırma:
Doğrudan shell prompt’unda JavaScript kodu yazabilirsiniz.

var x = 10;
    var y = 20;
    print(x + y); // Çıktı: 30

* Fonksiyon Tanımlama ve Kullanma:
Tekrarlayan görevler için kendi JavaScript fonksiyonlarınızı tanımlayabilirsiniz.

function findOldUsers(minAge) {
        return db.users.find({ age: { $gte: minAge } });
    }

    findOldUsers(50).pretty();

* Betikleri Çalıştırma (load()):
Harici bir JavaScript dosyasını shell’e yüklemek ve çalıştırmak için load() fonksiyonunu kullanabilirsiniz.

// my_script.js dosyasının içeriği:
    // db.products.find({ price: { $lt: 50 } }).forEach(function(doc) {
    //     printjson(doc);
    // });

    load("my_script.js")

Bu, karmaşık veya uzun betikleri yönetmek için çok kullanışlıdır.

* .mongoshrc.js Dosyası:
mongosh başladığında otomatik olarak yüklenen bir JavaScript dosyasıdır. Özel fonksiyonlar, alias’lar veya yapılandırma ayarları tanımlamak için kullanılabilir. Genellikle kullanıcının ana dizininde bulunur.

// ~/.mongoshrc.js örneği
    prompt = function() {
        return db + "> ";
    };

    function showMyDbs() {
        print("--- My Databases ---");
        show dbs;
        print("--------------------");
    }

Shell Yardımcı Fonksiyonları ve Ayarları

mongosh, kullanıcı deneyimini iyileştiren bir dizi yardımcı fonksiyona ve ayara sahiptir.

* help(): Mevcut veritabanı veya koleksiyon için kullanılabilecek komutları listeler.

db.help()
    db.users.help()

* print() / printjson(): Metin veya JSON çıktısı almak için kullanılır. printjson() daha okunabilir JSON çıktısı sağlar.

* cls / clear: Terminal ekranını temizler.

* Otomatik Tamamlama: Tab tuşuna basarak komutları, koleksiyon adlarını ve alan adlarını otomatik tamamlayabilirsiniz. Bu, hataları azaltır ve verimliliği artırır.

* Geçmiş (History): Yukarı ve aşağı ok tuşlarını kullanarak daha önce çalıştırdığınız komutlara erişebilirsiniz.

Hata Ayıklama ve Performans İpuçları

MongoDB Shell, sorguları optimize etmek ve performansı anlamak için de araçlar sunar.

* explain() Metodu:
Bir sorgunun veya agregasyon pipeline’ının nasıl çalıştığını ve hangi indeksleri kullandığını görmek için explain() metodunu kullanın. Bu, performans darboğazlarını belirlemek için çok önemlidir.

db.users.find({ age: { $gte: 30 } }).explain("executionStats")

"queryPlanner", "executionStats" veya "allPlansExecution" gibi modlar belirtebilirsiniz. executionStats, sorgunun gerçekte nasıl çalıştığına dair detaylı istatistikler sunar.

* getPlanCache().list():
MongoDB, sık kullanılan sorguların sorgu planlarını önbelleğe alır. Bu komut, önbellekteki sorgu planlarını listeler.

* db.currentOp():
Sunucuda şu anda çalışan işlemleri gösterir. Uzun süren veya kilitlenen sorguları tespit etmek için kullanışlıdır.

* Log Dosyalarını Kontrol Etme:
MongoDB sunucusunun log dosyaları (mongod.log), hatalar, yavaş sorgular ve diğer önemli olaylar hakkında değerli bilgiler içerir. Shell’den doğrudan erişilemezler ancak performans sorunlarını giderirken kontrol edilmelidirler.

Sonuç ve İleri Okuma

MongoDB Shell (mongosh), MongoDB veritabanı ile etkileşim kurmak için güçlü, esnek ve vazgeçilmez bir araçtır. Bu makalede, shell’in kurulumundan başlayarak, temel veritabanı ve koleksiyon işlemlerini, CRUD operasyonlarını, indeks yönetimini, agregasyon çerçevesini, kullanıcı yönetimini ve JavaScript entegrasyonunu ele aldık. Ayrıca, performans analizi ve hata ayıklama için ipuçları sunduk.

Shell’in komut satırı arayüzü, hem geliştiriciler hem de veritabanı yöneticileri için hızlı testler yapmak, betikler çalıştırmak ve veritabanını yönetmek için ideal bir ortam sağlar. Otomatik tamamlama, sözdizimi vurgulama ve gelişmiş hata mesajları gibi modern özellikler sayesinde mongosh, veritabanı etkileşimini daha verimli ve keyifli hale getirir.

MongoDB Shell’i etkin bir şekilde kullanarak, veritabanı operasyonlarınızı kolaylaştırabilir, sorgularınızı optimize edebilir ve MongoDB’nin sunduğu tüm potansiyeli ortaya çıkarabilirsiniz. Daha derinlemesine bilgi edinmek ve en güncel özelliklerden haberdar olmak için MongoDB’nin resmi dokümantasyonunu düzenli olarak ziyaret etmeniz şiddetle tavsiye edilir. Pratik yaparak ve farklı senaryoları deneyerek shell becerilerinizi geliştirebilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.