Bu bölüm MongoDB dizinlerini tanıtıyor. MYSQL'ye benzer şekilde, MongoDB de dizinleri destekler. Fark, MongoDB'nin JSON yapısının herhangi bir iç içe alınmış alanına dizin eklemeyi desteklemesidir ve aynı amaçla sorgu verimliliğini artırmaktır.

MongoDB Dizin Türleri

Tek Alan Dizini

MYSQL'ye benzer şekilde, tek bir alana dizin oluşturmak

Format:

db.collection.createIndex( { alan_adı: sıralama_yönü(1 veya -1) } )

Not: Sıralama yönü 1 artan sıralamayı temsil eder ve -1 azalan sıralamayı temsil eder.

Örnek 1:

db.records.createIndex( { score: 1 } )

Skor alanı için bir dizin oluşturur.

Örnek 2:

db.records.createIndex( { "location.state": 1 } )

Gömülü JSON alanı olan konum.eyalet için bir dizin oluşturur.

Bileşik Dizin

MYSQL'ye benzer şekilde, birden çok alan birleştirilerek bir dizin oluşturulabilir, bileşik sorguların hızını artırır.

Format:

db.collection.createIndex( { <alan1>: <tip>, <alan2>: <tip2>, ... } )

Örnek:

db.products.createIndex( { "item": 1, "stock": 1 } )

"item" ve "stock" alanları için artan sıralamada bir bileşik dizin oluşturur (1 artan sıralamayı temsil eder).

Metin Dizini (Tam Metin Dizini)

Metin dizini (text) genellikle tam metin aramasını desteklemek için kullanılır.

Not: Bir koleksiyon sadece bir metin dizini izin verir, ancak bir metin dizini birden fazla alana sahip olabilir.

Örnek:

db.stores.createIndex( { name: "text", description: "text" } )

isim ve açıklama alanları için metin tabanlı tam metin dizini oluşturur.

Not: Detaylar için, lütfen Tam Metin Dizini bölümüne bakın.

Uzamsal Dizin (GEO Dizini)

Genellikle coğrafi bilgi ile ilgili sorguları desteklemek için kullanılır, 2dsphere ve 2d olmak üzere iki tür dizini destekler. Detaylar için lütfen Coğrafi Sorgu bölümüne bakın.

Dizinleri Silme

Bir koleksiyondaki tüm dizinleri listelemek için:

db.pets.getIndexes()

Kediler koleksiyonundan catIdx dizinini silmek için:

db.pets.dropIndex( "catIdx" )