Ana içeriğe atla

MongoDB Nokta Gösterimi Eğitimi: İçiçe Alanlarda Sorgulama

MongoDB içinde içiçe belgeler ve diziler için birkaç sorgulama tekniğini öğrenin.
Güncel 3 Eki 2026  · 5 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

MongoDB ile yeni yeni haşır neşir olmaya başladıysanız, belgelerinizin biraz karmaşık görünmeye başladığı bir noktaya gelmiş olabilirsiniz. Bu belgeler düz, ilişkisel görünümlü veri parçalarından içiçe nesneler, içiçe diziler ve belki dört beş katmana kadar inen yapılara dönüşmüş olabilir. Peki bu veriyi birkaç katman derinlikteyken nasıl sorgularsınız?

Bu kısa eğitimde MongoDB içinde nokta gösterimine bakacağız ve içiçe alanlarda belirli değerlere sahip verileri temel alarak belgelerimizi nasıl hızlı ve kolayca filtreleyebileceğimizi göreceğiz.

Nokta gösteriminden söz ederken, içiçe alanların nokta karakteri ile ayrılmasını kastediyoruz. Örneğin:

root_field.nested_field_1.next_layer_nested_field_1

Her bir içiçe katman için, sorgularken o katmanı ayırmak üzere bir nokta karakteri ekleriz. Eğitimin ilerleyen kısımlarında daha kapsamlı örnekler göreceğiz.

MongoDB’ye yeni başlıyorsanız DataCamp’in Python ile MongoDB’ye Giriş kursuna göz atmayı unutmayın.

Önkoşullar

Bu eğitimden verim almak için bir MongoDB örneğinin dağıtılmış ve yapılandırılmış olması gerekir. Yani MongoDB’yi kullanmaya hazır olduğunuz bir noktada olmanız beklenir. Ayrıca MongoDB’de koleksiyon sorgulamaya en azından temel düzeyde aşina olmalısınız. Yardıma ihtiyacınız varsa dokümantasyon iyi bir başlangıç noktası olabilir.

Bu örnek için, "dbinc" veritabanı ve "people" koleksiyonu içinde aşağıdaki verileri kullanacağız:

[
    {
        "name": "Nic Raboy",
        "websites": [
            {
                "type": "other",
                "name": "Portfolio",
                "url": "https://www.nraboy.com"
            },
            {
                "type": "social",
                "name": "LinkedIn",
                "url": "https://www.linkedin.com/in/nraboy"
            }
        ],
        "employment": {
            "employer": "MongoDB",
            "address": {
                "street": "1633 Broadway",
                "city": "New York",
                "state": "New York",
                "postal_code": 10019
            }
        }
    },
    {
        "name": "Tony Kim",
        "websites": [
            {
                "type": "social",
                "name": "LinkedIn",
                "url": "https://www.linkedin.com/in/hyung-kim/"
            },
            {
                "type": "coding",
                "name": "GitHub",
                "url": "https://github.com/hjkmines"
            }
        ],
        "employment": {
            "employer": "MongoDB",
            "address": {
                "street": "1633 Broadway",
                "city": "New York",
                "state": "New York",
                "postal_code": 10019
            }
        }
    }
]

Yukarıdaki veriler, içiçe nesneler ve diziler içerdiği için belirli bir karmaşıklığa sahip iki belgeyi temsil eder. İlginç bir bilgi: MongoDB, BSON belgelerinde 100’den fazla içiçe katmanı destekler.

Siz de adım adım ilerlemeyi planlıyorsanız, bu belgelerin MongoDB örneğinizde mevcut olduğundan emin olun.

MongoDB İçindeki Verileri Çeşitli Yaklaşımlarla Sorgulama

Basitten başlayıp yavaş yavaş daha karmaşık alanlara geçeceğiz. İyi haber şu ki burada karmaşık demek mutlaka zor demek değil.

Diyelim ki koleksiyonumuz içinde MongoDB’de çalışan tüm kişileri bulmak istiyoruz. Aşağıdakine benzer bir sorgu çalıştırabiliriz:

use dbinc;

db.people.find({
	"employment.employer": "MongoDB"
});

Bu örnekte, employer alanı employment nesnesi içinde içiçe bir alan olarak bulunur. O alanı, nokta gösterimi kullanarak, yani alanları nokta karakteriyle ayırarak sorgulayabiliriz. Bu, New York’ta çalışan herkesi bulmak istememizden farklı değildir. Şöyle bir şey yapabiliriz:

use dbinc;

db.people.find({
	"employment.address.state": "New York"
});

Yukarıdaki sorguda belgenin içine üç katman derinliğe kadar girdik ve sorunsuz çalıştı.

Şimdi, o içiçe nesne dizisiyle çalışmaya bir göz atalım. Yapmak istediğimize bağlı olarak birkaç farklı sorgulama yolu var.

Diyelim ki "Portfolio" web sitesini listeleyen herkesi döndürmek istiyoruz. Aşağıdakine benzer bir sorgu çalıştırabiliriz:

use dbinc;

db.people.find({
	"websites.name": "Portfolio"
});

Yukarıdaki sorgu tek bir sonuç döndürür; çünkü yalnızca bir belgede "Portfolio" listelenmiştir. Dikkat ederseniz bir dizi olmasına rağmen nokta gösterimi burada da çalıştı. İnce detay şu: "Portfolio" en az bir kez o dizide bir yerde bulunmalıdır.

İşler burada ilginçleşebilir.

Diyelim ki dönen sonuçları daha da kısıtlamak istiyoruz. Bunu daha fazla filtre ölçütü ekleyerek yaparız; ancak diziler içindeki içiçe nesnelerle çalışırken işler biraz farklıdır. Örneğin şunu ele alalım:

use dbinc;

db.people.find({
    "websites.name": "Portfolio",
    "websites.type": "social"
});

Yukarıdaki örnekte, dizide hem "Portfolio" hem de "social" değerlerinin bulunmasını istiyoruz; ancak aynı nesnede olmak zorunda değiller. Yalnızca bir sonuç alırız; çünkü "Tony Kim" belgesinde "social" vardır ama "Portfolio" yoktur. Her iki alanın da aynı nesnede bulunması gerekiyorsa, bunun için nokta gösterimini kullanamayız.

Bu eğitimin kapsamı dışında olsa da, $elemMatch operatörünü şu şekilde kullanmak işi görür:

use dbinc;

db.people.find(
    { 
        "websites": { 
            "$elemMatch": { 
                "name": "Portfolio",
                "type": "social" 
            }
        }
    }
);

Yukarıdaki senaryoda hiçbir sonuç dönmez; çünkü örnek verimizde aynı nesnede eşleşen name ve type yoktur.

Dizilerle çalışıyorsanız ve üzerinde çalışmak istediğiniz dizi indeksini biliyorsanız, nokta gösterimini kullanmaya devam edebilirsiniz. Örneğin şunu ele alın:

use dbinc;

db.people.find({
    "websites.0.name": "Portfolio"
});

Yukarıdaki sorgu, eşleştirmek istediğiniz dizi indeksini kullanır. Bu senaryoda, dizideki ilk öğenin name alanının "Portfolio" olduğu tüm belgeleri döndürmek istiyoruz.

Bu eğitimin kapsamı dışında olmakla birlikte, nokta gösteriminin yalnızca salt-okunur sorgularla sınırlı olmadığını belirtmek önemlidir. Güncelleme işlemlerinde, projeksiyonlarda ve birleştirme (aggregation) işlem hatlarında burada görüldüğü gibi nokta gösterimini kullanabilirsiniz.

Sonuç

MongoDB sorgularınızda nokta gösterimini kullanmaya hızlı bir giriş yaptınız. Şunları öğrendik:

  • Nokta gösterimi, içiçe nesnelerde çalışır.
  • Dizilerde de nokta gösterimini kullanabilirsiniz; ancak beklentilerinize bağlı olarak sınırlamalar vardır.
  • $elemMatch operatörü, tek bir dizi nesnesi içinde birden fazla alanı eşleştirmek istediğinizde gereklidir.
  • Belirli dizi öğelerini sorgulamak istiyorsanız, nokta gösteriminde dizi indeksleri kullanılabilir.

MongoDB koleksiyonlarınızdaki veriler muhtemelen düz olmayacaktır; yani bir noktada içiçe nesneler, içiçe diziler, nesnelerin içinde içiçe diziler ve başka karmaşıklık kombinasyonlarıyla karşılaşacaksınız. İyi haber şu ki MongoDB, zengin sorgu API’siyle bu bilgilerle çalışmayı kolaylaştırır.

Henüz MongoDB kullanmıyorsanız MongoDB Atlas’ı inceleyin veya MongoDB ve Docker ile başlarken’i gösteren diğer eğitimime göz atın. Ayrıca ayrı rehberimizde MongoDB Sertifikasyonu hakkında bilgi edinebilirsiniz. 

SSS

MongoDB’de nokta gösterimi nedir?

Nokta gösterimi, nokta ayraç kullanarak içiçe MongoDB belge alanlarına erişmektir.

Sorgularımda çok sayıda içiçe alanla filtreleyebilir miyim?

Evet, eşleştirme sorgularınızda alanlarınızın tümünde, bazılarında veya hiçbirinde nokta gösterimini kullanabilirsiniz. Filtre aynıdır—sadece içiçe öğelere erişiyorsunuz.

Öngörülemeyen dizilerimle ne yapmalıyım?

Dizilerinizin boyut ve performans açısından sınırsız büyümemesini sağlamalısınız; ancak onları nokta gösterimiyle sorgulamak gayet iyi çalışır ve kolay kalır.

İçiçe nesneler ve diziler içeren bir belgeyi güncellemem gerekirse ne olur?

Bir güncelleme işlemi kullanırken, nokta gösterimi işlemin hem filtre kısmında hem de değişiklik kısmında çalışır.

Konular
MongoDB

Öne Çıkan DataCamp Kursları

Kurs

Python ile MongoDB'ye Giriş

3 sa
24.4K
MongoDB ile esnek yapılandırılmış verileri işlemeyi ve analiz etmeyi öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör