
MongoDB, **veriyi BSON dokümanları içinde saklayan doküman tabanlı bir NoSQL veritabanıdır**. [BSON](https://www.mongodb.com/docs/manual/reference/bson-types/), JSON benzeri alan yapısını ek veri türleriyle temsil eden binary formattır; veri dosyasının düz JSON metni olduğu anlamına gelmez. Birlikte erişilen bilgilerin aynı belgede toplanabildiği uygulamalarda değerlendirilebilir. Esnek belge yapısı, veri modelini ve sorgu planını tasarlama ihtiyacını kaldırmaz.

Ürün seçerken Community Server, Enterprise ve yönetilen Atlas hizmetinin özellikleri birbirine karıştırılmamalıdır. Self-hosted kurulum, yönetilen hizmetin yedekleme, izleme ve bakım kapsamını kendiliğinden sağlamaz.

## MongoDB mi PostgreSQL mi?

[PostgreSQL](/teknolojiler/postgresql), ilişkisel kısıtlar ve SQL ile birlikte JSONB de sunar. Bu nedenle yalnız JSON kullanılması MongoDB seçmek için yeterli gerekçe değildir.

| İhtiyaç                      | Seçim sorusu                                                              |
| ---------------------------- | ------------------------------------------------------------------------- |
| Birlikte okunan belge verisi | Bilgi tek belge içinde anlamlı ve yönetilebilir boyutta tutulabiliyor mu? |
| Yoğun ilişkiler ve raporlama | JOIN, kısıt ve sorgu ihtiyaçları hangi modelde daha sade karşılanıyor?    |
| Transaction                  | Birlikte değişmesi gereken verinin kapsamı ve hata davranışı nedir?       |
| Yatay ölçekleme              | Dağıtım anahtarı sorguları ve yazma yükünü dengeli yönlendirebiliyor mu?  |
| İşletim ve lisans            | Seçilen dağıtımın bakım, yedekleme ve kullanım koşulları uygun mu?        |

“NoSQL her zaman daha hızlıdır” veya “MongoDB'de transaction yoktur” gibi genellemeler yerine hedef sürümde gerçek sorgular ve hata senaryoları karşılaştırılmalıdır.

## Replica set ne sağlar?

[Resmi replikasyon belgesine göre](https://www.mongodb.com/docs/manual/replication/) replica set, aynı veri kümesini tutan üyelerden oluşur. Primary yazmaları kabul eder; secondary üyeler oplog üzerinden değişiklikleri uygular. Seçim sürecinde yazma kesintisi yaşanabilir, uygulamanın uygun sürücü ve bağlantı ayarları gerekir.

**Write concern**, yazma için hangi onayın beklendiğini; **read concern**, okunan verinin tutarlılık/izolasyon koşulunu; **read preference**, okumanın hangi üyelere yönlendirilebileceğini belirler. Bunlar ayrı kararlardır. Secondary'den okuma yapılması her zaman en yeni verinin görüleceği anlamına gelmez. Arbiter seçimlere katılabilir fakat veri tutmaz; veri kopyası gibi sayılmamalıdır.

## Sharding ne zaman gerekli?

[Sharding](https://www.mongodb.com/docs/manual/sharding/), veriyi birden fazla shard'a dağıtır. `mongos` sorguları yönlendirir, config server bileşenleri dağıtım bilgisini tutar. Veri hacmi tek başına yeterli karar ölçüsü değildir; indeksler, çalışma kümesi, yazma hızı ve sorgu dağılımı değerlendirilir.

**Shard key**, dokümanların shard'lara dağıtılmasında kullanılan alan veya alan bileşimidir. Yanlış seçilirse belirli bir shard üzerinde yoğunlaşma veya çok sayıda shard'a yayılan sorgular oluşabilir. Sharding'e geçmeden veya yeni shard eklemeden önce erişim örüntüsü ölçülmelidir. Sharding, yedekleme ve geri yükleme koordinasyonunu da karmaşıklaştırır.

## Lisans: Community Server ve SSPL

[MongoDB'nin lisans açıklamasına göre](https://www.mongodb.com/licensing/server-side-public-license/faq) Community Server'ın 16 Ekim 2018 ve sonrasında yayımlanan sürümleri SSPL kapsamındadır. SSPL, OSI tarafından açık kaynak lisansı olarak onaylanmış değildir.

Kurum içinde veritabanı kullanmak ile MongoDB işlevini üçüncü taraflara hizmet olarak sunmak aynı lisans senaryosu değildir. Enterprise, Atlas ve bağlayıcıların koşulları ayrıca incelenir; “Community” adı bütün ticari kullanım biçimlerinin koşulsuz olduğu anlamına gelmez.

## Yedekleme ve güvenli işletim

[Self-hosted yedekleme rehberi](https://www.mongodb.com/docs/manual/core/backups/), dump, filesystem snapshot ve yönetim araçlarını farklı kapsamlarla ele alır. Özellikle sharded cluster'da bileşenlerin birbirinden bağımsız yedeği tutarlı bir kurtarma noktası sağlamayabilir.

- Kimlik doğrulama, rol yetkileri, TLS ve özel ağ erişimi kurulumun parçasıdır.
- İndeks boyutu, disk gecikmesi, uzun sorgular, bağlantılar ve oplog penceresi izlenir.
- Yedek yöntemi topolojiye ve geri yükleme süresine göre seçilir; PITR gerekiyorsa ayrıca doğrulanır.
- Yükseltmede sürücü, sunucu ve feature compatibility version geçişi birlikte planlanır.
- İzole geri yükleme sonrasında belge sayısı kadar kritik sorgular ve uygulama işlevleri de kontrol edilir.

## İlgili hizmetlerimiz

{{< related-services >}}
