Herhangi bir veritabanında olduğu şeklinde, dizinler MongoDB’deki temel veri yapılarıdır. Kolay veritabanı sorgularını teşvik eder ve koleksiyonunuzun bir bölümünü benzersiz alanlarda depolamanıza ve düzenlemenize olanak tanır. Dizinler ek olarak aralık sorgulamasını bir aksaklık olmadan destek sunar.
Uygulamanız MongoDB kullanıyorsa, sorgularınızı daha süratli ve verimli hale getirmek için dizinlerin gücünden yararlanmak istersiniz. Peki MongoDB’de dizinler nedir ve bu tarz şeyleri iyi mi oluşturabilirsiniz?
MongoDB’de Dizinler Nedir?
MongoDB’deki dizinler, belgedeki bazı alanlara öncelik vermenizi ve bu tarz şeyleri ondan sonra sorgu parametrelerine dönüştürmenizi sağlar. Bir koleksiyon oluştururken, MongoDB varsayılan bir kimlik dizini oluşturur. Sadece daha yüksek sorgularınız yada düzenleme gereksinimleriniz var ise daha fazlasını ekleyebilirsiniz.
Benzersiz dizinler, veri girişi esnasında yinelenenleri de önler. Veritabanında esasen varolan girdileri reddetmek için kullanışlıdırlar. Böylece, mesela kullanıcı adları ve e-posta alanlarında benzersiz dizin oluşturma kullanabilirsiniz.
Dizinler, tüm koleksiyonu taramadan tanımlanan sorgu biçiminizi lüzumlu oranda kullanarak bilhassa istediğinizi almanıza destek sunar. Dizin oluştururken, verilerinizi her sorguladığınızda iyi mi sıralanır istediğinizi belirtebilirsiniz.
Mesela, veri noktalarını dizin kullanmadan giriş tarihlerine nazaran sıralamaya karar verirseniz, çoğu zaman sorgu ölçütleri ve sıralama düzeni sağlarsınız.
Belirli bir sayıdan daha yüksek yaşları azalan giriş tarihlerine nazaran düzenlemek istediğinizi açıklayın. Sorgunuz çoğu zaman şu şekilde görünür:
db.collectionName.find({age: {$gt: 50}}).sort({date: -1})
Sadece giriş tarihlerinde bir dizinin var ise, yalnızca sorgu ölçütlerini sağlamanız gerekir. Bunun sebebi, dizini oluştururken zamanı azalan şekilde sıralamış olmasıdır.
Bu durumda, yukarıdaki sorgu olur:
db.collectionName.find({age: {$gt: 50}})
MongoDB’de Dizin Iyi mi Oluşturulur
Yerleşik kabuk arayüzünü kullanarak MongoDB’de dizinler oluşturabilirsiniz. Bu öğreticide kullanacağımız şey budur.
Bununla beraber, dizinler tek başına mevcut değildir. Dizin oluşturabilmeniz için ilkin bir veritabanı ve koleksiyon oluşturmuş olmanız gerekir.
Daha ilkin de belirttiğimiz şeklinde, dizin oluşturmanın öne çıkan bir özelliği, dizin oluşturma esnasında sıralama ölçütlerini belirtmenize izin veriyor olmasıdır.
Mesela, yaşı ters sırada düzenleyen bir dizin şu şekilde görünür:
db.userCollection.createIndex({age: -1})
Negatif tamsayı (-1) kodunda MongoDB’ye, verileri kullanarak her sorguladığınızda yaşı ters sırada düzenlemesini söyler. yaş Dizin. Bundan dolayı, dizin esasen işlediğinden, sorgular esnasında bir sıralama düzeni belirtmeniz gerekmeyebilir.
Aynı alanın dizinini artan bir halde oluşturmak için, -1 ile 1:
db.userCollection.createIndex({age: 1})
MongoDB’de başka dizin türleri olmasına karşın, en oldukça kullanılan formlar olduğundan, tek ve bileşik formlar bu şekilde oluşturulur.
Sadece devam etmeden ilkin, bilgisayarınızda bir MongoDB sunucusu kurduğunuzdan güvenilir olun. Bunu esasen yaptıysanız, MongoDB kabuğunu açın ve takip edin.
MongoDB’de Tek Bir Dizin Oluşturma
MongoDB’de tek dizin oluşturma basittir. Adım atmak için, esasen koleksiyonlar içeren bir veritabanı seçin.
Veritabanı adımızın MUO:
use MUO
Bir veritabanı seçtikten sonrasında, createIndex() komutunu satırıyla kabukta bulabilirsiniz.
Mesela, bir koleksiyonda tek bir kullanıcı adı dizini oluşturmak ve ters sırada sorgulamak için kullanın:
db.collectionName.createIndex({username: -1})
MongoDB’de Oldukça Anahtarlı Dizin Oluşturma
Oldukça anahtarlı dizinler, karmaşık bir veri dizisindeki bir alanı dizine dizine ekler. Mesela, bir koleksiyon, detayları başka bir dizideki kullananların karmaşık verilerini içerebilir. Mesela, ad, boy ve yaş deyin.
Bu dizideki her kullanıcının yüksekliğinde aşağıdaki şeklinde oldukça anahtarlı bir dizin oluşturabilirsiniz:
db.customers.createIndex({user.height: 1})
Bu, bir sonraki yükseklik yukarıdaki kodda, kullanıcı alan.
Bileşik Dizin Oluşturma
Bileşik dizin birden fazla dizin ihtiva eder. Alan kişi koleksiyonunda adres ve ürün türünün bileşik dizinini oluşturmak için, mesela:
db.customer.createIndex({address: 1, products: 1})
Yukarıdaki dizini oluştururken bir ad sağlamadığınız için MongoDB varsayılan olarak bir ad oluşturur. Sadece her dizinin adını alt çizgiyle ayırır. Bundan dolayı, bilhassa bir bileşikte ikiden fazla dizin var ise, daha azca okunabilir.
Bileşik dizin oluştururken bir ad belirtmek için:
db.customers.createIndex({location: 1, products: 1, weight: -1}, {name: "myCompundIndex"})
Koleksiyondaki Tüm Dizinleri Alma
Koleksiyondaki tüm dizinleri görüntülemek için:
db.collectionName.getIndexes()
Yukarıdaki kod, adlandırılmış bir koleksiyondaki tüm dizinleri çıktısını alıyor.
Veritabanınızı Dizinlerle Düzenleme
MongoDB’de dizin oluşturma, eşzamanlı sorguları yürütürken emek verme zamanı gecikmesini azaltır. Ek olarak, veritabanınızı düzenlemenize ve daha erişilebilir hale getirmenize destek olurlar. Gördüğünüz şeklinde, MongoDB’de dizin oluşturmak karmaşık değil. Buradaki örnekler dizin oluşturmayı başlatmanız için yeterlidir. Bununla beraber, dizinlerinizi pratikte görmek için MongoDB’de sorgulamanın iyi mi çalıştığını bilmeniz gerekir.