MONGODB EĞİTİMİ
MongoDB eğitimi, document database'i "şemasız diye kolay" tuzağından çıkartıp bilinçle tasarlamak için verilir. Document model relational'dan ayırılır; embedded, referenced, subset ve computed schema pattern'i somut örneklerle çalışılır.
Eğitim sonunda katılımcı, Aggregation pipeline ile sorgu zinciri yazar; single, compound, multikey, text, geospatial ve partial index seçer; replica set ile HA ve sharding ile horizontal scale kurar. Change Streams ile event-driven entegrasyon, multi-document transaction davranışı eğitimin operasyonel kapanışıdır. Eğitim sırasında MongoDB belgeleri temel referans olarak kullanılır.
Katılımcı Profili
Bu eğitim, MongoDB'yi "şemasız diye kolay" tuzağından çıkartıp doküman modelini bilinçle tasarlamak isteyen rollere yöneliktir:
- Backend Geliştiriciler: Document database ile çalışan mühendisler
- Full-stack Geliştiriciler: MERN ve MEAN stack kullanan ekipler
- Veri Mühendisleri: NoSQL pipeline kuran roller
- Solution Architect'ler: NoSQL ile SQL arasında karar veren mühendisler
- Veritabanı Yöneticileri: MongoDB replica set ve sharded cluster yöneten roller
Ön Gereklilikler
Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:
- Bir programlama dilinde temel deneyim (Node.js, Python tercihen)
- JSON ve REST API kavramlarına aşinalık
- İlişkisel veritabanı ve SQL ile temel deneyim
- Komut satırı (mongosh, mongoimport) ile rahat çalışma
- Schema design ve normalization kavramlarına giriş düzeyi bilgi
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim sonunda katılımcı, MongoDB'yi "şemasız diye kolay" tuzağından çıkartıp doküman modelini bilinçle tasarlar:
- Document model'i relational'dan ayırır, denormalization stratejisi kurar
- Embedded, referenced, subset ve computed schema pattern'i uygular
- Aggregation pipeline ile sorgu zinciri yazar
- Single, compound, multikey, text, geospatial ve partial index seçer
- Replica set ile HA, sharding ile horizontal scale kurar
- Change Streams ile event-driven entegrasyon yapar
- Multi-document transaction ve isolation level davranışını bilir
MongoDB Eğitimi Konuları
1. NoSQL ve Document Model
- SQL ve NoSQL ayrımı
- NoSQL aileleri: document, key-value, column, graph
- Document store felsefe ve avantajları
- CAP theorem ve MongoDB konumu
2. MongoDB Mimarisi
- mongod ve mongos process'leri
- Database, collection, document hiyerarşisi
- Storage engine: WiredTiger
- MongoDB Atlas (managed) ve self-hosted
3. BSON ve JSON Farkı
- BSON binary format ve avantajları
- Ekstra tipler: ObjectId, Date, Decimal128, Binary
- 16MB document size limit
- JSON ↔ BSON çevirimi
4. CRUD - insertOne, find, updateMany, deleteOne
- insertOne, insertMany, bulkWrite
- findOne, find ve cursor
- updateOne, updateMany, replaceOne
- deleteOne, deleteMany
- Upsert davranışı
5. Query Operatörleri
- Comparison: $eq, $ne, $gt, $lt, $in
- Logical: $and, $or, $not, $nor
- Element: $exists, $type
- Array: $all, $elemMatch, $size
- Evaluation: $regex, $expr, $where
6. Aggregation Pipeline
- $match, $group, $project, $sort, $limit
- $lookup ile join benzeri
- $unwind ile array açma
- $facet ile paralel pipeline
- Pipeline optimization rules
7. Index Tipleri
- Single field index
- Compound index ve prefix kuralı
- Multikey index (array için)
- Text index ve full-text search
- Geospatial: 2d, 2dsphere
- TTL index ve otomatik silme
8. Schema Design - Embedded vs Referenced
- Embedded document: nested data
- Referenced document: ObjectId ile bağlantı
- Karar matrisi: read/write pattern, growth, atomicity
- Data duplication trade-off
9. Data Modeling Pattern'leri
- Bucket pattern ile time-series
- Outlier pattern ile büyük döküman
- Computed pattern ile pre-aggregation
- Polymorphic pattern
- Schema versioning
10. Transaction ve ACID
- Single-document ACID (her zaman)
- Multi-document transaction
- startSession ve withTransaction
- Read concern: local, majority, snapshot
- Write concern: w, j, wtimeout
11. Replication ve Replica Set
- Replica set yapısı: primary, secondary, arbiter
- Oplog ve replication mantığı
- Election process
- Read preference: primary, secondary, nearest
12. Sharding ve Horizontal Scaling
- Sharding kavramı ve chunk
- Shard key seçimi (kritik karar)
- Hashed vs ranged sharding
- Config server ve mongos router
- Balancer ve chunk migration
13. Change Streams
- Change stream ile real-time event
- Resume token ile devam etme
- Event-driven architecture entegrasyonu
- Kafka Connect MongoDB konnektörü
14. Atlas Search ve Vector Search
- Atlas Search: Lucene tabanlı full-text
- $search ve $searchMeta aggregation
- Vector Search ile embedding
- kNN ve approximate nearest neighbor
15. Authentication ve Authorization
- SCRAM-SHA-256 default auth
- x.509 certificate authentication
- LDAP ve Kerberos enterprise
- Role-based access control
- Field-level redaction
16. Backup ve Restore
- mongodump ve mongorestore
- Atlas Backup ve point-in-time recovery
- Filesystem snapshot
- Continuous backup ve oplog tail
17. Performance Tuning - Profiler ve Explain
- db.collection.explain() ile query plan
- winningPlan, rejectedPlans analiz
- Database profiler ve slow query log
- Connection pool tuning
- Working set ve memory sizing
18. MongoDB Compass ve mongosh
- Compass GUI ile sorgu ve aggregation
- Schema visualizer ve performance advisor
- Studio 3T ve Mongo Express alternatifleri
- MongoDB Shell (mongosh) modern özellikler
MONGODB EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Embedded ve referenced document arasında nasıl seçim yapılır?
Embedded ilişkili veri her zaman birlikte okunuyorsa ve boyutu sınırlıysa (16MB doc limit) doğru — tek read ile sorgu yeter. Referenced büyük veya bağımsız update gereken durumda ($lookup ile join). Klasik kural: bir-üzerinde-çok ilişki embedded, çok-üzerinde-çok referenced.
Aggregation pipeline ile $lookup performansı nasıl?
$lookup MongoDB'nin join'idir ama RDBMS'e göre yavaş — denormalize edilmiş doküman tasarımı tercih sebebidir. Index'li alan üzerinde $lookup makul; foreign key olmayan alanda full collection scan yapar. Karmaşık join ihtiyacı varsa schema design'ı sorgulamak gerekir.
Index türleri (single, compound, multikey, text, geospatial) nasıl seçilir?
Single tek alan için. Compound çoklu alan sorgusu için (sıra önemli — ESR kuralı: Equality, Sort, Range). Multikey array alanlarına otomatik. Text full-text search. Geospatial 2dsphere lokasyon sorguları için. Partial index sadece bir koşul karşılayan dokümanları indeksler — boyut tasarrufu.
Replica set ile sharding ne zaman birlikte gerekli?
Replica set HA için — primary, secondary, otomatik failover. Sharding horizontal scale için — data tek node'a sığmıyor veya throughput tek node'u aşıyor. Production setup'ında sharded cluster içinde her shard kendi replica set'i olur. Erken sharding gereksiz operasyonel yük; gerekli olmadan geçilmemeli.
Change Streams ne işe yarar ve hangi senaryolar için?
Change Streams oplog'a tail yapar — insert, update, delete event'leri real-time stream eder. Cache invalidation, event-driven entegrasyon, audit log gibi senaryolarda DB'yi pasif kaynak değil aktif event publisher yapar. Resume token ile kesintisiz okuma; resumeAfter ile yeniden başlanır.
Multi-document transaction ne zaman kullanılır?
MongoDB 4.0+ replica set, 4.2+ sharded cluster üzerinde ACID transaction destekler. Birden fazla dokümanı atomik güncellemek için kullanılır ama performans cezası ciddi — single document atomicity tercih edilir. Doküman tasarımı transaction ihtiyacını minimize edecek şekilde yapılmalı.



