MongoDB Veritabanı Nasıl Oluşturulur: Bilinmesi Gereken 6 Kritik Yön

Yayınlanan: 2022-11-07

Yazılımınız için gereksinimlerinize bağlı olarak esneklik, ölçeklenebilirlik, performans veya hıza öncelik verebilirsiniz. Bu nedenle, geliştiriciler ve işletmeler, ihtiyaçları için bir veritabanı seçerken genellikle kafaları karışır. Yüksek esneklik ve ölçeklenebilirlik sağlayan bir veritabanına ve müşteri analitiği için veri toplamaya ihtiyacınız varsa, MongoDB sizin için doğru seçim olabilir!
Bu faydalı kılavuzda MongoDB veritabanının yapısı ve veritabanınızı nasıl oluşturacağınız, izleyeceğiniz ve yöneteceğiniz hakkında daha fazla bilgi edinin Tweetlemek için Tıklayın
Bu yazıda, MongoDB veritabanının yapısını ve veritabanınızı nasıl oluşturacağınızı, izleyeceğinizi ve yöneteceğinizi tartışacağız! Başlayalım.

MongoDB Veritabanı Nasıl Yapılandırılır?

MongoDB, şemasız bir NoSQL veritabanıdır. Bu, SQL veritabanları için yaptığınız gibi tablolar/veritabanları için bir yapı belirtmediğiniz anlamına gelir.

NoSQL veritabanlarının aslında ilişkisel veritabanlarından daha hızlı olduğunu biliyor muydunuz? Bunun nedeni dizin oluşturma, parçalama ve toplama işlem hatları gibi özelliklerdir. MongoDB ayrıca hızlı sorgu yürütmesiyle bilinir. Bu nedenle Google, Toyota, Forbes gibi şirketler tarafından tercih edilmektedir.

Aşağıda, MongoDB'nin bazı temel özelliklerini keşfedeceğiz.

Belgeler

MongoDB, verileri JSON belgeleri olarak depolayan bir belge veri modeline sahiptir. Belgeler, uygulama kodundaki nesnelerle doğal olarak eşleşir, bu da geliştiricilerin kullanımını daha kolay hale getirir.

İlişkisel bir veritabanı tablosunda, yeni bir alan eklemek için bir sütun eklemelisiniz. JSON belgesindeki alanlarda durum böyle değil. JSON belgesindeki alanlar belgeden belgeye farklılık gösterebilir, bu nedenle veritabanındaki her kayda eklenmezler.

Belgeler, hiyerarşik ilişkileri ifade etmek için yuvalanabilen diziler gibi yapıları depolayabilir. Ayrıca MongoDB, belgeleri ikili JSON (BSON) türüne dönüştürür. Bu, dize, tamsayı, boolean sayı ve çok daha fazlası gibi çeşitli veri türleri için daha hızlı erişim ve daha fazla destek sağlar!

Çoğaltma Setleri

MongoDB'de yeni bir veritabanı oluşturduğunuzda, sistem otomatik olarak verilerinizin en az 2 kopyasını daha oluşturur. Bu kopyalar "replika kümeleri" olarak bilinir ve bunlar arasında verileri sürekli olarak çoğaltarak verilerinizin daha iyi kullanılabilir olmasını sağlar. Ayrıca bir sistem arızası veya planlı bakım sırasında kesinti süresine karşı koruma sağlarlar.

Koleksiyonlar

Koleksiyon, bir veritabanıyla ilişkili bir grup belgedir. İlişkisel veritabanlarındaki tablolara benzerler.

Ancak koleksiyonlar çok daha esnektir. Birincisi, bir şemaya güvenmiyorlar. İkincisi, belgelerin aynı veri türünden olması gerekmez!

Bir veritabanına ait koleksiyonların listesini görüntülemek için listCollections komutunu kullanın.

Toplama İşlem Hatları

Bu çerçeveyi birkaç işleç ve ifadeyi birleştirmek için kullanabilirsiniz. Esnektir çünkü herhangi bir yapının verilerini işlemenize, dönüştürmenize ve analiz etmenize olanak tanır.

Bu nedenle MongoDB, 150 operatör ve ifadede hızlı veri akışlarına ve özelliklere izin verir. Aynı zamanda, birden fazla koleksiyondan elde edilen sonuçları esnek bir şekilde bir araya getiren Birlik aşaması gibi birkaç aşamaya sahiptir.

dizinler

Verimliliğini artırmak ve sorgu hızını artırmak için bir MongoDB belgesindeki herhangi bir alanı indeksleyebilirsiniz. Dizin oluşturma, incelenen belgeleri sınırlamak için dizini tarayarak zaman kazandırır. Bu, koleksiyondaki her belgeyi okumaktan çok daha iyi değil mi?

Birden çok alandaki bileşik dizinler dahil olmak üzere çeşitli dizin oluşturma stratejilerini kullanabilirsiniz. Örneğin, ayrı alanlarda çalışanın adını ve soyadını içeren birkaç belgeniz olduğunu varsayalım. Adın ve soyadının döndürülmesini istiyorsanız, hem “Soyadı” hem de “Ad”ı içeren bir dizin oluşturabilirsiniz. Bu, “Soyadı” üzerinde bir dizine ve “Ad” üzerinde bir dizine sahip olmaktan çok daha iyi olurdu.

Hangi sorgunun dizinlerden yararlanabileceğini daha iyi anlamak için Performans Danışmanı gibi araçlardan yararlanabilirsiniz.

parçalama

Sharding, tek bir veri kümesini birden çok veritabanına dağıtır. Bu veri seti daha sonra bir sistemin toplam depolama kapasitesini artırmak için birden fazla makinede saklanabilir. Bunun nedeni, daha büyük veri kümelerini daha küçük parçalara ayırması ve bunları çeşitli veri düğümlerinde depolamasıdır.

MongoDB, verileri koleksiyon düzeyinde parçalar, bir koleksiyondaki belgeleri bir kümedeki parçalar arasında dağıtır. Bu, mimarinin en büyük uygulamaları işlemesine izin vererek ölçeklenebilirliği sağlar.

MongoDB Veritabanı Nasıl Oluşturulur

Önce işletim sisteminize uygun doğru MongoDB paketini kurmanız gerekecek. 'MongoDB Community Server'ı İndirin' sayfasına gidin. Mevcut seçeneklerden, zip dosyası olarak en son "sürüm", "paket" biçimini ve işletim sisteminiz olarak "platform"u seçin ve aşağıda gösterildiği gibi "İndir"e tıklayın:

Bu resim, MongoDB Community Server'ı indirirken mevcut seçenekleri gösterir - Sürüm, Platform ve Paket.
MongoDB topluluk sunucusu indirme işlemi. (Resim kaynağı: MongoDB Topluluk Sunucusu)

İşlem oldukça basittir, bu nedenle sisteminizde kısa sürede MongoDB kurulu olacaktır!

Kurulumu tamamladıktan sonra, komut isteminizi açın ve doğrulamak için mongod -version yazın. Aşağıdaki çıktıyı almazsanız ve bunun yerine bir dizi hata görürseniz, onu yeniden yüklemeniz gerekebilir:

Bu, kurulumdan sonra MongoDB sürümünü kontrol etmek için bir kod parçacığıdır.
MongoDB sürümünün doğrulanması. (Resim kaynağı: configserverfirewall)

MongoDB Shell'i Kullanma

Başlamadan önce şunlardan emin olun:

  • Müşteriniz, Aktarım Katmanı Güvenliğine sahip ve IP izin verilenler listenizde.
  • İstediğiniz MongoDB kümesinde bir kullanıcı hesabınız ve parolanız var.
  • Cihazınıza MongoDB kurdunuz.

Adım 1: MongoDB Kabuğuna Erişin

MongoDB kabuğuna erişmek için aşağıdaki komutu yazın:

 net start MongoDB

Bu, aşağıdaki çıktıyı vermelidir:

Bu, MongoDB sunucusunu başlatmak için bir kod parçacığıdır.
MongoDB sunucu başlatma. (Resim kaynağı: c-sharpcorner)

Önceki komut MongoDB sunucusunu başlattı. Çalıştırmak için komut istemine mongo gerekir.

Bu, MongoDB sunucusunu çalıştırmak için bir kod parçacığıdır.
MongoDB sunucusunu çalıştırıyor. (Resim kaynağı: bmc)

Burada MongoDB kabuğunda, veritabanları oluşturmak, veri eklemek, verileri düzenlemek, idari komutlar vermek ve verileri silmek için komutlar yürütebiliriz.

Adım 2: Veritabanınızı Oluşturun

SQL'den farklı olarak, MongoDB'nin bir veritabanı oluşturma komutu yoktur. Bunun yerine, belirli bir veritabanına geçiş yapan use adlı bir anahtar sözcük vardır. Veritabanı yoksa, yeni bir veritabanı oluşturur, yoksa mevcut veritabanına bağlanır.

Örneğin, "şirket" adlı bir veritabanı başlatmak için şunu yazın:

 use Company
Bu, MongoDB'de bir veritabanı oluşturmak için bir kod parçacığıdır.
MongoDB'de veritabanı oluşturma.

Sisteminizde yeni oluşturduğunuz veritabanını onaylamak için db yazabilirsiniz. Oluşturduğunuz yeni veritabanı açılırsa, ona başarıyla bağlandınız.

Mevcut veritabanlarını kontrol etmek istiyorsanız, show dbs yazın ve sisteminizdeki tüm veritabanlarını döndürecektir:

Bu, sistemdeki mevcut veritabanlarını görüntülemek için bir kod parçacığıdır.
MongoDB'de veritabanlarını görüntüleme.

Varsayılan olarak, MongoDB'yi yüklemek yönetici, yapılandırma ve yerel veritabanlarını oluşturur.

Oluşturduğumuz veritabanının görüntülenmediğini fark ettiniz mi? Bunun nedeni, henüz değerleri veritabanına kaydetmemiş olmamızdır! Veritabanı yönetimi bölümü altında yerleştirmeyi tartışacağız.

Atlas kullanıcı arayüzünü kullanma

MongoDB'nin veritabanı hizmeti Atlas'ı da kullanmaya başlayabilirsiniz. Atlas'ın bazı özelliklerine erişmek için ödeme yapmanız gerekebilir, ancak çoğu veritabanı işlevi ücretsiz katmanda mevcuttur. Ücretsiz katmanın özellikleri, bir MongoDB veritabanı oluşturmak için fazlasıyla yeterli.

Başlamadan önce şunlardan emin olun:

  1. IP'niz izin verilenler listesinde.
  2. Kullanmak istediğiniz MongoDB kümesinde bir kullanıcı hesabınız ve parolanız var.

AtlasUI ile bir MongoDB Veritabanı oluşturmak için bir tarayıcı penceresi açın ve https://cloud.mongodb.com adresinde oturum açın. Küme sayfanızdan Koleksiyonlara Gözat 'ı tıklayın. Kümede veri tabanı yoksa, Kendi Verimi Ekle Butonuna tıklayarak veri tabanınızı oluşturabilirsiniz.

Bilgi istemi sizden bir veritabanı ve koleksiyon adı sağlamanızı isteyecektir. Bunları adlandırdıktan sonra Oluştur 'u tıklayın ve işiniz bitti! Artık yeni belgeler girebilir veya sürücüleri kullanarak veritabanına bağlanabilirsiniz.

MongoDB Veritabanınızı Yönetme

Bu bölümde, MongoDB veritabanınızı etkili bir şekilde yönetmenin birkaç şık yolunu inceleyeceğiz. Bunu MongoDB Pusulası'nı kullanarak veya koleksiyonlar aracılığıyla yapabilirsiniz.

Koleksiyonları Kullanma

İlişkisel veritabanları, belirli veri türleri ve sütunları ile iyi tanımlanmış tablolara sahipken, NoSQL'in tablolar yerine koleksiyonları vardır. Bu koleksiyonların herhangi bir yapısı yoktur ve belgeler değişiklik gösterebilir; aynı koleksiyondaki başka bir belgenin biçimini eşleştirmek zorunda kalmadan farklı veri türlerine ve alanlara sahip olabilirsiniz.

Göstermek için “Çalışan” adında bir koleksiyon oluşturalım ve buna bir belge ekleyelim:

 db.Employee.insert( { "Employeename" : "Chris", "EmployeeDepartment" : "Sales" } )

Ekleme başarılı olursa WriteResult({ "nInserted" : 1 }) döndürür:

Bu kod parçacığı WriteResult({
MongoDB'ye başarılı ekleme.

Burada “db” o anda bağlı olan veritabanını ifade eder. “Çalışan”, şirket veri tabanında yeni oluşturulan koleksiyondur.

Burada bir birincil anahtar belirlemedik çünkü MongoDB otomatik olarak “_id” adında bir birincil anahtar alanı oluşturur ve ona varsayılan bir değer ayarlar.

Koleksiyonu JSON formatında kontrol etmek için aşağıdaki komutu çalıştırın:

 db.Employee.find().forEach(printjson)

Çıktı:

 { "_id" : ObjectId("63151427a4dd187757d135b8"), "Employeename" : "Chris", "EmployeeDepartment" : "Sales" }

“_id” değeri otomatik olarak atanırken, varsayılan birincil anahtarın değerini değiştirebilirsiniz. Bu sefer “Çalışan” veritabanına “_id” değeri “1” olan başka bir belge ekleyeceğiz:

 db.Employee.insert( { "_id" : 1, "EmployeeName" : "Ava", "EmployeeDepartment" : "Public Relations" } )

db.Employee.find().forEach(printjson) komutunu çalıştırdığımızda aşağıdaki çıktıyı alırız:

Çıktı, Çalışan koleksiyonundaki belgeleri birincil anahtarlarıyla birlikte gösterir.
Koleksiyondaki belgeler birincil anahtarlarıyla birlikte.

Yukarıdaki çıktıda, “Ava” için “_id” değeri otomatik olarak bir değer atanmak yerine “1” olarak ayarlanır.

Veritabanına başarıyla değerler eklediğimize göre, aşağıdaki komutu kullanarak sistemimizde mevcut veritabanlarının altında görünüp görünmediğini kontrol edebiliriz:

 show dbs
Çıktı, sistemimizdeki mevcut veritabanlarındaki Çalışan koleksiyonunu gösterir.
Veritabanlarının listesini görüntüleme.

Ve işte! Sisteminizde başarıyla bir veritabanı oluşturdunuz!

MongoDB Pusulası'nı Kullanma

Mongo kabuğundan MongoDB sunucuları ile çalışabilsek de bazen sıkıcı olabiliyor. Bunu bir üretim ortamında yaşayabilirsiniz.

Ancak, MongoDB tarafından oluşturulan ve bunu kolaylaştırabilecek bir pusula aracı (uygun olarak adlandırılan Pusula) vardır. Daha iyi bir GUI'ye ve veri görselleştirme, performans profili oluşturma ve verilere, veritabanlarına ve koleksiyonlara CRUD (oluşturma, okuma, güncelleme, silme) erişimi gibi ek işlevlere sahiptir.

İşletim sisteminiz için Compass IDE'yi indirebilir ve basit işlemiyle kurabilirsiniz.

Ardından uygulamayı açın ve bağlantı dizesini yapıştırarak sunucuyla bağlantı oluşturun. Bulamazsanız, Bağlantı alanlarını tek tek doldur seçeneğine tıklayabilirsiniz. MongoDB'yi kurarken bağlantı noktası numarasını değiştirmediyseniz, bağlan düğmesine tıklamanız yeterlidir, işte buradasınız! Aksi takdirde, ayarladığınız değerleri girin ve Bağlan'a tıklayın.

Bu resim, bağlantı url'sini yapıştırmayı seçebileceğiniz Yeni Bağlantı penceresini gösterir.
MongoDB'de Yeni Bağlantı penceresi.. (Resim kaynağı: mongodb)

Ardından, Yeni Bağlantı penceresinde Ana Bilgisayar Adı, Bağlantı Noktası ve Kimlik Doğrulamayı sağlayın.

MongoDB Compass'ta bir veritabanı oluşturabilir ve ilk koleksiyonunu aynı anda ekleyebilirsiniz. İşte bunu nasıl yapacağınız:

  1. İstemi açmak için Veritabanı Oluştur'a tıklayın.
  2. Veritabanının adını ve ilk koleksiyonunu girin.
  3. Veritabanı Oluştur'u tıklayın.

Veritabanınızın adına tıklayarak ve ardından Belgeler sekmesini görmek için koleksiyonun adına tıklayarak veritabanınıza daha fazla belge ekleyebilirsiniz. Ardından, koleksiyonunuza bir veya daha fazla belge eklemek için Veri Ekle düğmesini tıklayabilirsiniz.

Belgelerinizi eklerken birer birer veya bir dizide birden çok belge olarak girebilirsiniz. Birden çok belge ekliyorsanız, bu virgülle ayrılmış belgelerin köşeli parantez içine alındığından emin olun. Örneğin:

 { _id: 1, item: { name: "apple", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }, { _id: 2, item: { name: "banana", code: "123" }, qty: 20, tags: [ "B" ] }, { _id: 3, item: { name: "spinach", code: "456" }, qty: 25, tags: [ "A", "B" ] }, { _id: 4, item: { name: "lentils", code: "456" }, qty: 30, tags: [ "B", "A" ] }, { _id: 5, item: { name: "pears", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }, { _id: 6, item: { name: "strawberry", code: "123" }, tags: [ "B" ] }

Son olarak, belgeleri koleksiyonunuza eklemek için Ekle'ye tıklayın. Bir belgenin gövdesi şöyle görünür:

 { "StudentID" : 1 "StudentName" : "JohnDoe" }

Burada alan adları “ÖğrenciKimliği” ve “ÖğrenciAdı”dır. Alan değerleri sırasıyla “1” ve “JohnDoe”dur.

Faydalı Komutlar

Bu koleksiyonları rol yönetimi ve kullanıcı yönetimi komutları ile yönetebilirsiniz.

Kullanıcı Yönetimi Komutları

MongoDB kullanıcı yönetimi komutları, kullanıcıya ait komutları içerir. Bu komutları kullanarak kullanıcıları oluşturabilir, güncelleyebilir ve silebiliriz.

dropKullanıcı

Bu komut, belirtilen veritabanından tek bir kullanıcıyı kaldırır. Sözdizimi aşağıdadır:

 db.dropUser(username, writeConcern)

Burada kullanıcı adı, username ile ilgili kimlik doğrulama ve erişim bilgilerini içeren belgeyi içeren zorunlu bir alandır. İsteğe bağlı writeConcern alanı, oluşturma işlemi için yazma kaygısının düzeyini içerir. Yazma endişesinin düzeyi, isteğe bağlı writeConcern alanıyla belirlenebilir.

userAdminAnyDatabase rolüne sahip bir kullanıcıyı bırakmadan önce, kullanıcı yönetimi ayrıcalıklarına sahip en az bir başka kullanıcı olduğundan emin olun.

Bu örnekte, "user26" kullanıcısını test veritabanına bırakacağız:

 use test db.dropUser("user26", {w: "majority", wtimeout: 4000})

Çıktı:

 > db.dropUser("user26", {w: "majority", wtimeout: 4000}); true
Kullanıcı oluştur

Bu komut, belirtilen veritabanı için aşağıdaki gibi yeni bir kullanıcı oluşturur:

 db.createUser(user, writeConcern)

Burada user , oluşturulacak kullanıcı hakkında kimlik doğrulama ve erişim bilgilerinin bulunduğu belgeyi içeren zorunlu bir alandır. İsteğe bağlı writeConcern alanı, oluşturma işlemi için yazma kaygısının düzeyini içerir. Yazma kaygısının düzeyi, isteğe bağlı alan olan writeConcern tarafından belirlenebilir.

createUser , kullanıcı veritabanında zaten varsa, yinelenen bir kullanıcı hatası döndürür.

Test veritabanında aşağıdaki gibi yeni bir kullanıcı oluşturabilirsiniz:

 use test db.createUser( { user: "user26", pwd: "myuser123", roles: [ "readWrite" ] } );

Çıktı aşağıdaki gibidir:

 Successfully added user: { "user" : "user26", "roles" : [ "readWrite", "dbAdmin" ] }
GrantRolesToUser

Bir kullanıcıya ek roller vermek için bu komuttan yararlanabilirsiniz. Bunu kullanmak için aşağıdaki sözdizimini aklınızda tutmanız gerekir:

 db.runCommand( { grantRolesToUser: "<user>", roles: [ <roles> ], writeConcern: { <write concern> }, comment: <any> } )

Yukarıda bahsedilen rollerde hem kullanıcı tanımlı hem de yerleşik roller belirtebilirsiniz. grantRolesToUser çalıştığı veritabanında bulunan bir rolü belirtmek isterseniz, rolü aşağıda belirtildiği gibi bir belgeyle belirtebilirsiniz:

 { role: "<role>", db: "<database>" }

Veya rolü, rolün adıyla belirtebilirsiniz. Örneğin:

 "readWrite"

Farklı bir veritabanında bulunan rolü belirtmek istiyorsanız, rolü farklı bir belgeyle belirtmeniz gerekir.

Bir veritabanında rol vermek için, belirtilen veritabanında grantRole eylemine ihtiyacınız vardır.

İşte size net bir resim vermek için bir örnek. Örneğin, ürün veritabanında aşağıdaki rollere sahip bir productUser00 kullanıcısını alın:

 "roles" : [ { "role" : "assetsWriter", "db" : "assets" } ]

grantRolesToUser işlemi, "productUser00" için stok veritabanında readWrite rolünü ve ürün veritabanında read rolünü sağlar:

 use products db.runCommand({ grantRolesToUser: "productUser00", roles: [ { role: "readWrite", db: "stock"}, "read" ], writeConcern: { w: "majority" , wtimeout: 2000 } })

Ürünler veritabanındaki productUser00 kullanıcısı artık aşağıdaki rollere sahiptir:

 "roles" : [ { "role" : "assetsWriter", "db" : "assets" }, { "role" : "readWrite", "db" : "stock" }, { "role" : "read", "db" : "products" } ]
kullanıcılarBilgi

Bir veya daha fazla kullanıcı hakkında bilgi döndürmek için usersInfo komutunu kullanabilirsiniz. İşte sözdizimi:

 db.runCommand( { usersInfo: <various>, showCredentials: <Boolean>, showCustomData: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document>, comment: <any> } ) { usersInfo: <various> }

Erişim açısından, kullanıcılar her zaman kendi bilgilerine bakabilirler. Başka bir kullanıcının bilgilerine bakmak için, komutu çalıştıran kullanıcının, diğer kullanıcının veritabanındaki viewUser eylemini içeren ayrıcalıklara sahip olması gerekir.

userInfo komutunu çalıştırırken, belirtilen seçeneklere bağlı olarak aşağıdaki bilgileri alabilirsiniz:

 { "users" : [ { "_id" : "<db>.<username>", "userId" : <UUID>, // Starting in MongoDB 4.0.9 "user" : "<username>", "db" : "<db>", "mechanisms" : [ ... ], // Starting in MongoDB 4.0 "customData" : <document>, "roles" : [ ... ], "credentials": { ... }, // only if showCredentials: true "inheritedRoles" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true "inheritedPrivileges" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true "inheritedAuthenticationRestrictions" : [ ] // only if showPrivileges: true or showAuthenticationRestrictions: true "authenticationRestrictions" : [ ... ] // only if showAuthenticationRestrictions: true }, ], "ok" : 1 }

Artık usersInfo komutuyla neler başarabileceğinize dair genel bir fikre sahip olduğunuza göre, ortaya çıkabilecek bir sonraki soru, belirli kullanıcılara ve birden çok kullanıcıya bakmak için hangi komutların kullanışlı olacağıdır.

Aynı şeyi göstermek için iki kullanışlı örnek:
"Ofis" veritabanında tanımlanan bir "Anthony" kullanıcısının kimlik bilgilerine değil, belirli kullanıcılara yönelik belirli ayrıcalıklara ve bilgilere bakmak için aşağıdaki komutu yürütün:

 db.runCommand( { usersInfo: { user: "Anthony", db: "office" }, showPrivileges: true } )

Mevcut veritabanında bir kullanıcıya bakmak istiyorsanız, kullanıcıdan sadece ismiyle bahsedebilirsiniz. Örneğin, ana veritabanındaysanız ve ana veritabanında “Timothy” adlı bir kullanıcı varsa, aşağıdaki komutu çalıştırabilirsiniz:

 db.getSiblingDB("home").runCommand( { usersInfo: "Timothy", showPrivileges: true } )

Ardından, çeşitli kullanıcılar için bilgilere bakmak isterseniz bir dizi kullanabilirsiniz. İsteğe bağlı showCredentials ve showPrivileges alanlarını ekleyebilir veya bunları dışarıda bırakmayı seçebilirsiniz. Komut şöyle görünecek:

 db.runCommand({ usersInfo: [ { user: "Anthony", db: "office" }, { user: "Timothy", db: "home" } ], showPrivileges: true })
Kullanıcıdan Rolleri iptal et

Rollerin bulunduğu veritabanındaki bir kullanıcıdan bir veya daha fazla rolü kaldırmak için revokeRolesFromUser komutundan yararlanabilirsiniz. revokeRolesFromUser komutu aşağıdaki sözdizimine sahiptir:

 db.runCommand( { revokeRolesFromUser: "<user>", roles: [ { role: "<role>", db: "<database>" } | "<role>", ], writeConcern: { <write concern> }, comment: <any> } )

Yukarıda bahsedilen söz diziminde, roles alanında hem kullanıcı tanımlı hem de yerleşik roller belirtebilirsiniz. grantRolesToUser komutuna benzer şekilde, bir belgede iptal etmek istediğiniz rolü belirtebilir veya adını kullanabilirsiniz.

revokeRolesFromUser komutunu başarıyla yürütmek için, belirtilen veritabanında revokeRole eylemine sahip olmanız gerekir.

İşte noktayı eve götürmek için bir örnek. Ürünler veritabanındaki productUser00 varlığı aşağıdaki rollere sahipti:

 "roles" : [ { "role" : "assetsWriter", "db" : "assets" }, { "role" : "readWrite", "db" : "stock" }, { "role" : "read", "db" : "products" } ]

Aşağıdaki revokeRolesFromUser komutu, kullanıcının rollerinden ikisini kaldıracaktır: products "okuma" rolü ve "varlıklar" veritabanından assetsWriter rolü:

 use products db.runCommand( { revokeRolesFromUser: "productUser00", roles: [ { role: "AssetsWriter", db: "assets" }, "read" ], writeConcern: { w: "majority" } } )

Ürün veritabanındaki "productUser00" kullanıcısının artık yalnızca bir rolü var:

 "roles" : [ { "role" : "readWrite", "db" : "stock" } ]

Rol Yönetimi Komutları

Roller, kullanıcılara kaynaklara erişim sağlar. Yöneticiler tarafından bir MongoDB sistemine erişimi kontrol etmek için birkaç yerleşik rol kullanılabilir. Roller istenen ayrıcalıkları kapsamıyorsa, belirli bir veritabanında yeni roller oluşturmak için daha da ileri gidebilirsiniz.

DropRol

dropRole komutu ile komutu çalıştırdığınız veri tabanından kullanıcı tanımlı bir rolü silebilirsiniz. Bu komutu yürütmek için aşağıdaki sözdizimini kullanın:

 db.runCommand( { dropRole: "<role>", writeConcern: { <write concern> }, comment: <any> } )

Başarılı yürütme için, belirtilen veritabanında dropRole eylemine sahip olmanız gerekir. Aşağıdaki işlemler writeTags rolünü "ürünler" veritabanından kaldırır:

 use products db.runCommand( { dropRole: "writeTags", writeConcern: { w: "majority" } } )
oluşturmakRol

Bir rol oluşturmak ve ayrıcalıklarını belirtmek için createRole komutundan yararlanabilirsiniz. Rol, komutu çalıştırmayı seçtiğiniz veritabanına uygulanacaktır. Rol zaten veritabanında mevcutsa, createRole komutu yinelenen bir rol hatası döndürür.

Bu komutu yürütmek için verilen sözdizimini izleyin:

 db.adminCommand( { createRole: "<new role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ], roles: [ { role: "<role>", db: "<database>" } | "<role>", ], authenticationRestrictions: [ { clientSource: ["<IP>" | "<CIDR range>", ...], serverAddress: ["<IP>" | "<CIDR range>", ...] }, ], writeConcern: <write concern document>, comment: <any> } )

Bir rolün ayrıcalıkları, rolün oluşturulduğu veritabanına uygulanır. Rol, veritabanındaki diğer rollerden ayrıcalıkları devralabilir. Örneğin, “yönetici” veritabanında yapılan bir rol, bir küme veya tüm veritabanları için geçerli olan ayrıcalıklar içerebilir. Ayrıca, diğer veritabanlarında bulunan rollerden ayrıcalıkları devralabilir.

Bir veritabanında rol oluşturmak için iki şeye sahip olmanız gerekir:

  1. Yeni rolün ayrıcalıklarından ve devralınacak rollerden bahsetmek için bu veritabanındaki grantRole eylemi.
  2. Bu veritabanı kaynağındaki createRole eylemi.

Aşağıdaki createRole komutu, kullanıcı veritabanında bir clusterAdmin rolü oluşturacaktır:

 db.adminCommand({ createRole: "clusterAdmin", privileges: [ { resource: { cluster: true }, actions: [ "addShard" ] }, { resource: { db: "config", collection: "" }, actions: [ "find", "remove" ] }, { resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert" ] }, { resource: { db: "", collection: "" }, actions: [ "find" ] } ], roles: [ { role: "read", db: "user" } ], writeConcern: { w: "majority" , wtimeout: 5000 } })
hibeRollerToRol

grantRolesToRole komutuyla, kullanıcı tanımlı bir role roller atayabilirsiniz. grantRolesToRole komutu, komutun yürütüldüğü veritabanındaki rolleri etkiler.

Bu grantRolesToRole komutu aşağıdaki sözdizimine sahiptir:

 db.runCommand( { grantRolesToRole: "<role>", roles: [ { role: "<role>", db: "<database>" }, ], writeConcern: { <write concern> }, comment: <any> } )

Erişim ayrıcalıkları, grantRolesToUser komutuna benzer - komutun doğru şekilde yürütülmesi için bir veritabanında grantRole eylemine ihtiyacınız vardır.

Aşağıdaki örnekte, " productsReader " veritabanındaki productReader rolünü, productsWriter rolünün ayrıcalıklarını devralacak şekilde güncellemek için grantRolesToUser komutunu kullanabilirsiniz:

 use products db.runCommand( { grantRolesToRole: "productsReader", roles: [ "productsWriter" ], writeConcern: { w: "majority" , wtimeout: 5000 } } )
iptalAyrıcalıklarRolden

Komutun yürütüldüğü veritabanındaki kullanıcı tanımlı rolden belirtilen ayrıcalıkları kaldırmak için revokePrivilegesFromRole kullanabilirsiniz. Doğru yürütme için aşağıdaki sözdizimini aklınızda tutmanız gerekir:

 db.runCommand( { revokePrivilegesFromRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ], writeConcern: <write concern document>, comment: <any> } )

Bir ayrıcalığı iptal etmek için "kaynak belge" kalıbı, o ayrıcalığın "kaynak" alanıyla eşleşmelidir. "İşlemler" alanı, tam bir eşleşme veya bir alt küme olabilir.

Örneğin, kaynak olarak "yönetici" veritabanını belirten aşağıdaki ayrıcalıklara sahip olan ürünler veritabanındaki manageRole rolünü düşünün:

 { "resource" : { "db" : "managers", "collection" : "" }, "actions" : [ "insert", "remove" ] }

Yöneticiler veritabanındaki yalnızca bir koleksiyondan "ekleme" veya "kaldırma" eylemlerini iptal edemezsiniz. Aşağıdaki işlemler rolde herhangi bir değişikliğe neden olmaz:

 use managers db.runCommand( { revokePrivilegesFromRole: "manageRole", privileges: [ { resource : { db : "managers", collection : "kiosks" }, actions : [ "insert", "remove" ] } ] } )
 db.runCommand( { revokePrivilegesFromRole: "manageRole", privileges: [ { resource : { db : "managers", collection : "kiosks" }, actions : [ "insert" ] } ] } )

manageRole rolünden "ekleme" ve/veya "kaldırma" eylemlerini iptal etmek için kaynak belgeyi tam olarak eşleştirmeniz gerekir. Örneğin, aşağıdaki işlem, mevcut ayrıcalıktan yalnızca "kaldır" eylemini iptal eder:

 use managers db.runCommand( { revokePrivilegesFromRole: "manageRole", privileges: [ { resource : { db : "managers", collection : "" }, actions : [ "remove" ] } ] } )

Aşağıdaki işlem, yöneticiler veritabanındaki "yönetici" rolünden birden çok ayrıcalığı kaldıracaktır:

 use managers db.runCommand( { revokePrivilegesFromRole: "executive", privileges: [ { resource: { db: "managers", collection: "" }, actions: [ "insert", "remove", "find" ] }, { resource: { db: "managers", collection: "partners" }, actions: [ "update" ] } ], writeConcern: { w: "majority" } } )
rollerBilgi

rolesInfo komutu, hem yerleşik hem de kullanıcı tanımlı roller dahil olmak üzere belirtilen roller için ayrıcalık ve devralma bilgilerini döndürür. Ayrıca, bir veritabanı kapsamındaki tüm rolleri almak için rolesInfo komutundan yararlanabilirsiniz.

Düzgün yürütme için şu sözdizimini izleyin:

 db.runCommand( { rolesInfo: { role: <name>, db: <db> }, showPrivileges: <Boolean>, showBuiltinRoles: <Boolean>, comment: <any> } )

Geçerli veritabanından bir rol için bilgi döndürmek için adını aşağıdaki gibi belirleyebilirsiniz:

 { rolesInfo: "<rolename>" }

Başka bir veritabanından bir rol için bilgi döndürmek için, rolden ve veritabanından bahseden bir belgeyle rolden bahsedebilirsiniz:

 { rolesInfo: { role: "<rolename>", db: "<database>" } }

Örneğin, aşağıdaki komut, yöneticiler veritabanında tanımlanan rol yöneticisi için rol devralma bilgilerini döndürür:

 db.runCommand( { rolesInfo: { role: "executive", db: "managers" } } )

Bu sonraki komut, komutun yürütüldüğü veritabanındaki rol devralma bilgilerini döndürür: accountManager :

 db.runCommand( { rolesInfo: "accountManager" } )

Aşağıdaki komut, yöneticiler veritabanında tanımlandığı gibi "yönetici" rolü için hem ayrıcalıkları hem de rol devralmalarını döndürür:

 db.runCommand( { rolesInfo: { role: "executive", db: "managers" }, showPrivileges: true } )

Birden çok rolden bahsetmek için bir dizi kullanabilirsiniz. Ayrıca dizideki her rolden bir dize veya belge olarak da bahsedebilirsiniz.

Yalnızca, rolün, komutun yürütüldüğü veritabanında mevcut olması durumunda bir dize kullanmalısınız:

 { rolesInfo: [ "<rolename>", { role: "<rolename>", db: "<database>" }, ] }

Örneğin, aşağıdaki komut, üç farklı veritabanındaki üç rol için bilgi döndürür:

 db.runCommand( { rolesInfo: [ { role: "executive", db: "managers" }, { role: "accounts", db: "departments" }, { role: "administrator", db: "products" } ] } )

Hem ayrıcalıkları hem de rol mirasını aşağıdaki gibi alabilirsiniz:

 db.runCommand( { rolesInfo: [ { role: "executive", db: "managers" }, { role: "accounts", db: "departments" }, { role: "administrator", db: "products" } ], showPrivileges: true } )

Daha İyi Performans için MongoDB Belgelerini Gömme

MongoDB gibi belge veritabanları, şemanızı ihtiyaçlarınıza göre tanımlamanıza izin verir. MongoDB'de en uygun şemaları oluşturmak için belgeleri iç içe yerleştirebilirsiniz. Bu nedenle, uygulamanızı bir veri modeliyle eşleştirmek yerine, kullanım durumunuza uygun bir veri modeli oluşturabilirsiniz.

Kesinti süresi ve WordPress sorunlarıyla mı mücadele ediyorsunuz? Kinsta size zaman kazandırmak için tasarlanmış barındırma çözümüdür! Özelliklerimize göz atın

Gömülü belgeler, birlikte eriştiğiniz ilgili verileri depolamanıza olanak tanır. MongoDB için şemalar tasarlarken, varsayılan olarak belgeleri gömmeniz önerilir. Veritabanı tarafı veya uygulama tarafı birleştirmeleri ve referansları yalnızca faydalı olduklarında kullanın.

İş yükünün bir belgeyi gerektiği kadar sık ​​alabileceğinden emin olun. Aynı zamanda, belgenin ihtiyaç duyduğu tüm verilere de sahip olması gerekir. Bu, uygulamanızın olağanüstü performansı için çok önemlidir.

Aşağıda, belgeleri gömmek için birkaç farklı desen bulacaksınız:

Gömülü Belge Kalıbı

Bunu, karmaşık alt yapıları bile kullanıldıkları belgelere gömmek için kullanabilirsiniz. Bağlı verileri tek bir belgeye gömmek, veri almak için gereken okuma işlemlerinin sayısını azaltabilir. Genel olarak şemanızı, uygulamanızın gerekli tüm bilgileri tek bir okuma işleminde alacak şekilde yapılandırmanız gerekir. Bu nedenle, burada akılda tutulması gereken kural, birlikte kullanılanların birlikte saklanması gerektiğidir .

Gömülü Alt Küme Kalıbı

Gömülü alt küme modeli, karma bir durumdur. Bunu, bu öğelerin bazılarını sergilemek üzere el altında tutabileceğiniz, ilgili öğelerin uzun bir listesinin ayrı bir koleksiyonu için kullanırsınız.

Film incelemelerini listeleyen bir örnek:

 > db.movie.findOne() { _id: 321475, title: "The Dark Knight" } > db.review.find({movie_id: 321475}) { _id: 264579, movie_id: 321475, stars: 4 text: "Amazing" } { _id: 375684, movie_id: 321475, stars:5, text: "Mindblowing" }

Şimdi, benzer binlerce incelemeyi gözünüzde canlandırın, ancak bir film gösterirken yalnızca en son ikisini görüntülemeyi planlıyorsunuz. Bu senaryoda, bu alt kümeyi film belgesinde bir liste olarak saklamak mantıklıdır:

 > db.movie.findOne({_id: 321475}) { _id: 321475, title: "The Dark Knight", recent_reviews: [ {_id: 264579, stars: 4, text: "Amazing"}, {_id: 375684, stars: 5, text: "Mindblowing"} ] }</code

Basitçe söylemek gerekirse, ilgili öğelerin bir alt kümesine rutin olarak erişiyorsanız, onu yerleştirdiğinizden emin olun.

Bağımsız Erişim

Alt belgeleri, üst koleksiyonlarından ayırmak için koleksiyonlarında saklamak isteyebilirsiniz.

Örneğin, bir şirketin ürün hattını alın. Şirket küçük bir ürün grubu satıyorsa, bunları şirket belgesinde saklamak isteyebilirsiniz. Ancak bunları şirketler arasında yeniden kullanmak veya stok tutma birimlerinden (SKU) doğrudan erişmek istiyorsanız, onları koleksiyonlarında da saklamak istersiniz.

Bir varlığı bağımsız olarak değiştirir veya erişirseniz, en iyi uygulama için ayrı olarak depolamak üzere bir koleksiyon oluşturun.

Sınırsız Listeler

İlgili bilgilerin kısa listelerini belgelerinde saklamanın bir dezavantajı vardır. Listeniz denetlenmeden büyümeye devam ederse, onu tek bir belgeye koymamalısınız. Bunun nedeni, onu çok uzun süre destekleyemeyecek olmanızdır.

Bunun iki nedeni var. İlk olarak, MongoDB'nin tek bir belgenin boyutu üzerinde bir sınırı vardır. İkincisi, belgeye çok fazla frekansta erişirseniz, kontrolsüz bellek kullanımından kaynaklanan olumsuz sonuçlar görürsünüz.

Basitçe söylemek gerekirse, bir liste sınırsızca büyümeye başlarsa, onu ayrı olarak saklamak için bir koleksiyon yapın.

Extended Reference Pattern

The extended reference pattern is like the subset pattern. It also optimizes information that you regularly access to store on the document.

Here, instead of a list, it's leveraged when a document refers to another that is present in the same collection. At the same time, it also stores some fields from that other document for ready access.

For instance:

 > db.movie.findOne({_id: 245434}) { _id: 245434, title: "Mission Impossible 4 - Ghost Protocol", studio_id: 924935, studio_name: "Paramount Pictures" }

As you can see, “the studio_id” is stored so that you can look up more information on the studio that created the film. But the studio's name is also copied to this document for simplicity.

To embed information from modified documents regularly, remember to update documents where you've copied that information when it is modified. In other words, if you routinely access some fields from a referenced document, embed them.

How To Monitor MongoDB

You can use monitoring tools like Kinsta APM to debug long API calls, slow database queries, long external URL requests, to name a few. You can even leverage commands to improve database performance. You can also use them to inspect the ase/” data-mce-href=”https://kinsta.com/knowledgebase/wordpress-repair-database/”>health of your database instances.

Why Should You Monitor MongoDB Databases?

A key aspect of database administration planning is monitoring your cluster's performance and health. MongoDB Atlas handles the majority of administration efforts through its fault-tolerance/scaling abilities.

Despite that, users need to know how to track clusters. They should also know how to scale or tweak whatever they need before hitting a crisis.

By monitoring MongoDB databases, you can:

  • Observe the utilization of resources.
  • Understand the current capacity of your database.
  • React and detect real-time issues to enhance your application stack.
  • Observe the presence of performance issues and abnormal behavior.
  • Align with your governance/data protection and service-level agreement (SLA) requirements.

Key Metrics To Monitor

While monitoring MongoDB, there are four key aspects you need to keep in mind:

1. MongoDB Hardware Metrics

Here are the primary metrics for monitoring hardware:

Normalized Process CPU

It's defined as the percentage of time spent by the CPU on application software maintaining the MongoDB process.

You can scale this to a range of 0-100% by dividing it by the number of CPU cores. It includes CPU leveraged by modules such as kernel and user.

High kernel CPU might show exhaustion of CPU via the operating system operations. But the user linked with MongoDB operations might be the root cause of CPU exhaustion.

Normalized System CPU

It's the percentage of time the CPU spent on system calls servicing this MongoDB process. You can scale it to a range of 0-100% by dividing it by the number of CPU cores. It also covers the CPU used by modules such as iowait, user, kernel, steal, etc.

User CPU or high kernel might show CPU exhaustion through MongoDB operations (software). High iowait might be linked to storage exhaustion causing CPU exhaustion.

Disk IOPS

Disk IOPS is the average consumed IO operations per second on MongoDB's disk partition.

Disk Latency

This is the disk partition's read and write disk latency in milliseconds in MongoDB. High values (>500ms) show that the storage layer might affect MongoDB's performance.

System Memory

Use the system memory to describe physical memory bytes used versus available free space.

The available metric approximates the number of bytes of system memory available. You can use this to execute new applications, without swapping.

Disk Space Free

This is defined as the total bytes of free disk space on MongoDB's disk partition. MongoDB Atlas provides auto-scaling capabilities based on this metric.

Swap Usage

You can leverage a swap usage graph to describe how much memory is being placed on the swap device. A high used metric in this graph shows that swap is being utilized. This shows that the memory is under-provisioned for the current workload.

MongoDB Cluster's Connection and Operation Metrics

Here are the main metrics for Operation and Connection Metrics:

Operation Execution Times

The average operation time (write and read operations) performed over the selected sample period.

Opcounters

It is the average rate of operations executed per second over the selected sample period. Opcounters graph/metric shows the operations breakdown of operation types and velocity for the instance.

Bağlantılar

This metric refers to the number of open connections to the instance. High spikes or numbers might point to a suboptimal connection strategy either from the unresponsive server or the client side.

Query Targeting and Query Executors

This is the average rate per second over the selected sample period of scanned documents. For query executors, this is during query-plan evaluation and queries. Query targeting shows the ratio between the number of documents scanned and the number of documents returned.

Yüksek bir sayı oranı, optimal olmayan işlemlere işaret eder. Bu işlemler, daha küçük bir parça döndürmek için çok sayıda belgeyi tarar.

Tara ve Sipariş Et

Seçilen örnek sorgu dönemi boyunca saniye başına ortalama hızı tanımlar. Bir dizin kullanarak sıralama işlemini gerçekleştiremeyen sıralanmış sonuçları döndürür.

Kuyruklar

Kuyruklar, bir kilit için bekleyen işlemlerin sayısını, yazma veya okuma olarak tanımlayabilir. Yüksek kuyruklar, optimalden daha az şema tasarımının varlığını gösterebilir. Ayrıca, veritabanı kaynakları üzerinde yüksek rekabeti zorlayarak çakışan yazma yollarını da gösterebilir.

MongoDB Replikasyon Metrikleri

Çoğaltma izleme için birincil metrikler şunlardır:

Çoğaltma İşlem Günlüğü Penceresi

Bu ölçüm, birincilin çoğaltma işlem günlüğünde kullanılabilen yaklaşık saat sayısını listeler. Bir ikincil bu miktardan daha fazla gecikirse, devam edemez ve tam bir yeniden eşitlemeye ihtiyaç duyar.

Çoğaltma Gecikmesi

Çoğaltma gecikmesi, yazma işlemlerinde ikincil bir düğümün birincil düğümün arkasında olduğu yaklaşık saniye sayısı olarak tanımlanır. Yüksek çoğaltma gecikmesi, çoğaltmada zorluk çeken bir ikincil öğeye işaret eder. Bağlantıların okuma/yazma endişesi göz önüne alındığında, işleminizin gecikmesini etkileyebilir.

Çoğaltma Boşluğu

Bu ölçüm, birincil çoğaltmanın oplog penceresi ile ikincil çoğaltma gecikmesi arasındaki farkı ifade eder. Bu değerin sıfıra inmesi sekonderin KURTARMA moduna geçmesine neden olabilir.

Muhalifler - repl

Opcounters -repl, seçilen örnekleme periyodu için saniyede yürütülen çoğaltma işlemlerinin ortalama hızı olarak tanımlanır. Opcounters -graph/metric ile, belirtilen örnek için işlem hızlarına ve işlem türlerinin dökümüne göz atabilirsiniz.

Oplog GB/Saat

Bu, birincilin saatte oluşturduğu gigabaytlarca oplog'un ortalama hızı olarak tanımlanır. Beklenmeyen yüksek hacimli oplog, son derece yetersiz bir yazma iş yüküne veya bir şema tasarımı sorununa işaret edebilir.

MongoDB Performans İzleme Araçları

MongoDB, performans takibi için Cloud Manager, Atlas ve Ops Manager'da yerleşik kullanıcı arabirimi araçlarına sahiptir. Ayrıca, daha ham tabanlı verilere bakmak için bazı bağımsız komutlar ve araçlar sağlar. Ortamınızı kontrol etmek için erişime ve uygun rollere sahip bir ana bilgisayardan çalıştırabileceğiniz bazı araçlar hakkında konuşacağız:

mongotop

Bir MongoDB örneğinin koleksiyon başına veri yazmak ve okumak için harcadığı süreyi izlemek için bu komuttan yararlanabilirsiniz. Aşağıdaki sözdizimini kullanın:

 mongotop <options> <connection-string> <polling-interval in seconds>

rs.durum()

Bu komut, çoğaltma kümesi durumunu döndürür. Yöntemin yürütüldüğü üyenin bakış açısından yürütülür.

mongostat

MongoDB sunucu anınızın durumuna hızlı bir genel bakış elde etmek için mongostat komutunu kullanabilirsiniz. Optimum çıktı için, gerçek zamanlı bir görünüm sunduğundan belirli bir olayın tek bir örneğini izlemek için kullanabilirsiniz.

Kilit kuyrukları, işlem arızası, MongoDB bellek istatistikleri ve bağlantılar/ağ gibi temel sunucu istatistiklerini izlemek için bu komuttan yararlanın:

 mongostat <options> <connection-string> <polling interval in seconds>

dbStats

Bu komut, belirli bir veritabanı için dizin sayısı ve boyutları, toplam toplama verileri ve depolama boyutu ve koleksiyonla ilgili istatistikler (koleksiyon ve belge sayısı) gibi depolama istatistiklerini döndürür.

db.serverStatus()

Veritabanının durumuna genel bir bakış için db.serverStatus() komutundan yararlanabilirsiniz. Size mevcut örnek metrik sayaçlarını temsil eden bir belge verir. Örnekle ilgili istatistikleri toplamak için bu komutu düzenli aralıklarla yürütün.

collStats

collStats komutu, toplama düzeyinde dbStats tarafından sunulana benzer istatistikleri toplar. Çıktısı, koleksiyondaki nesnelerin sayısından, koleksiyon tarafından tüketilen disk alanı miktarından, koleksiyonun boyutundan ve belirli bir koleksiyon için dizinleriyle ilgili bilgilerden oluşur.

Tüm bu komutları, veritabanı performansını ve hatalarını izlemenize ve bir veritabanını iyileştirmek için bilinçli karar vermeye yardımcı olmanıza olanak tanıyan veritabanı sunucusunun gerçek zamanlı raporlamasını ve izlenmesini sunmak için kullanabilirsiniz.

MongoDB Veritabanı Nasıl Silinir

MongoDB'de oluşturduğunuz bir veritabanını bırakmak için use anahtar sözcüğü ile ona bağlanmanız gerekir.

“Mühendisler” adında bir veritabanı oluşturduğunuzu varsayalım. Veritabanına bağlanmak için aşağıdaki komutu kullanacaksınız:

 use Engineers

Ardından, bu veritabanından kurtulmak için db.dropDatabase() yazın. Yürütmeden sonra, beklediğiniz sonuç budur:

 { "dropped" : "Engineers", "ok" : 1 }

Veritabanının hala var olup olmadığını doğrulamak için showdbs komutunu çalıştırabilirsiniz.

Özet

MongoDB'den her bir değer damlasını sıkıştırmak için temelleri güçlü bir şekilde anlamanız gerekir. Bu nedenle, MongoDB veritabanlarını avucunuzun içi gibi bilmek çok önemlidir. Bu, önce bir veritabanı oluşturma yöntemlerine aşina olmanızı gerektirir.
Yüksek esneklik ve ölçeklenebilirlik sağlayan bir veritabanı mı arıyorsunuz? Cevap MongoDB olabilir... Tweetlemek için tıklayın
Bu makalede, MongoDB'de bir veritabanı oluşturmak için kullanabileceğiniz farklı yöntemlere ışık tuttuk ve ardından, sizi veritabanlarınızın zirvesinde tutmak için bazı şık MongoDB komutlarının ayrıntılı bir açıklamasını izledik. Son olarak, iş akışı işlevlerinizin en yüksek verimlilikte olmasını sağlamak için MongoDB'deki yerleşik belgelerden ve performans izleme araçlarından nasıl yararlanabileceğinizi tartışarak tartışmayı tamamladık.

Bu MongoDB komutlarına ne dersiniz? Burada görmek isteyeceğiniz bir yönü veya yöntemi kaçırdık mı? Yorumlarda bize bildirin!