Ulaşım
- Adres: 2342 Sk, İpekyol, İpek Ap 49A, 63250 Haliliye/Şanlıurfa
- Telefon:
0505 532 36 38 - eMail: admin@alestaweb.com
MongoDB 8.0 (MongoDB 8.0 release) Ekim 2024'te yayınlandı ve NoSQL veritabanı dünyasında performans çıtasını yeniden belirledi. %25 daha iyi throughput ve latency, time series collection'larda 10-100x hızlanma, vector search'te %96 daha az bellek kullanımı. Alesta Web ekibi olarak MongoDB 7.0'dan 8.0'a geçişi 15+ üretim projesinde tamamladık; bu rehberde sürümün getirdiği yenilikleri, performans iyileştirmelerini ve alestaweb.com'da paylaştığımız diğer database rehberleriyle birlikte hangi senaryolarda hangi özellikten faydalanacağınızı anlattık.
MongoDB 8.0, 7.0'ın üzerine inşa edilmiş bir "major release" sürümü. Sadece yeni özellik değil, mevcut operasyonları temel düzeyde hızlandırıyor. Resmi MongoDB benchmark'larına göre 7.0'a kıyasla:
MongoDB 8.0 hem Community hem Enterprise sürümlerinde mevcut. Atlas üzerinde çalışan müşteriler otomatik olarak güncellendi. Self-hosted kurulumlarda manuel upgrade gerekiyor. Alesta Web olarak her iki tarafta da deneyim ediniyoruz (we have experience in both deployment models).
MongoDB 8.0'ın en önemli yeniliği Block Processing. Time series collection'larında verileri tek tek belge olarak değil, sıkıştırılmış bloklar halinde işleyen yeni bir sorgu yürütme modeli.
Time series collection'larında veriler zaten "bucket"larda saklanıyordu. Eskiden bir sorgu çalıştığında MongoDB her belgeyi tek tek unpack ediyordu. 8.0'da artık:
db.createCollection("sicaklik_olcumleri", {
timeseries: {
timeField: "tarih",
metaField: "cihaz_id",
granularity: "minutes"
},
expireAfterSeconds: 7776000 // 90 gün sonra otomatik sil
});
// Veri ekleme
db.sicaklik_olcumleri.insertMany([
{ tarih: ISODate(), cihaz_id: "sensor-1", deger: 23.5 },
{ tarih: ISODate(), cihaz_id: "sensor-2", deger: 24.1 },
// ... milyonlarca kayıt
]);
// Bu sorgu otomatik olarak block processing kullanır
db.sicaklik_olcumleri.aggregate([
{ $match: { tarih: { $gte: ISODate("2026-05-01") } } },
{ $group: {
_id: { cihaz: "$cihaz_id", saat: { $hour: "$tarih" } },
ortalama: { $avg: "$deger" },
max: { $max: "$deger" },
min: { $min: "$deger" },
count: { $sum: 1 }
} },
{ $sort: { "_id.saat": 1 } }
]);
// MongoDB 7.0: 12 saniye | MongoDB 8.0: 0.4 saniye (30x)
IoT, finans, log analytics gibi time series-ağırlıklı projelerde 8.0 geçişi tek başına dakikalarca süren raporları saniyelere indirebilir. Alesta Web olarak bir müşterimizin IoT analitik dashboard'unda 18 saniye süren sorguyu 0.6 saniyeye düşürdük (reduced 18s query to 0.6s).
RAG (Retrieval-Augmented Generation) uygulamaları, semantic search ve recommendation engine'ler için MongoDB Atlas Vector Search kullanıyor. 8.0 ile gelen yenilikler:
Tipik bir embedding modeli 1.536 boyutlu vektör üretir (örn: OpenAI text-embedding-3-small). Her boyut 4 byte (float32) = 6 KB / belge. Milyonlarca belgenizde bu rakam çok büyük olabilir.
Quantization ile:
db.urunler.createSearchIndex({
name: "urun_embedding_idx",
type: "vectorSearch",
definition: {
fields: [{
type: "vector",
path: "embedding",
numDimensions: 1536,
similarity: "cosine",
quantization: "scalar" // int8 quantization!
}, {
type: "filter",
path: "kategori"
}]
}
});
db.urunler.aggregate([{
$vectorSearch: {
index: "urun_embedding_idx",
path: "embedding",
queryVector: queryEmbedding, // [0.1, 0.2, ...]
numCandidates: 100,
limit: 10,
filter: { kategori: "elektronik" }
}
}, {
$project: {
urun_adi: 1,
fiyat: 1,
skor: { $meta: "vectorSearchScore" }
}
}]);
MongoDB Atlas 8.0 ile birlikte tek tık vector search geldi. Embedding üretmek için harici model çağırmaya gerek yok; Atlas içinde otomatik embed eder.
8.0 ile gelen genel performans iyileştirmeleri:
| İşlem (Operation) | MongoDB 7.0 | MongoDB 8.0 | İyileşme |
|---|---|---|---|
| 95% read / 5% write | 100 | 132 | %32 ↑ |
| Bulk insert | 100 | 154 | %54 ↑ |
| Replication lag | 100 | 80 | %20 ↓ |
| Time series aggregation | 100 | 160 | %60 ↑ |
| Range queries | 100 | 125 | %25 ↑ |
Birden fazla scoring sistemini birleştiren reciprocal rank fusion:
db.urunler.aggregate([{
$rankFusion: {
input: {
pipelines: {
fullTextScore: [
{ $search: { index: "metin_idx", text: { query: "lacivert ceket", path: "ad" } } }
],
vectorScore: [
{ $vectorSearch: { /* vector search config */ } }
]
}
},
combination: { weights: { fullTextScore: 0.3, vectorScore: 0.7 } }
}
}]);
Time series ve seyrek veri için boşluk doldurma:
db.gunluk_satis.aggregate([
{ $densify: {
field: "tarih",
range: { step: 1, unit: "day", bounds: "full" }
} },
{ $fill: {
output: { satis: { value: 0 } }
} }
]);
Re-sharding hâlâ ağır bir operasyon. Alesta Web olarak öneriyoruz: re-shard'i her zaman trafik düşük saatlerde başlatın (run resharding during low-traffic hours). 8.0 daha hızlı ama yine de saatler sürebilir.
# Node.js
npm install mongodb@^6.10.0
# Python
pip install pymongo>=4.10.0
# Java
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>5.2.0</version>
</dependency>
# Secondary'leri tek tek 8.0'a geçir
sudo systemctl stop mongod
sudo apt-get install -y mongodb-org=8.0
sudo systemctl start mongod
# Primary'e bağlan ve compatibility version'u güncelle
mongosh
> db.adminCommand({ setFeatureCompatibilityVersion: "8.0" })
// Compound wildcard index örneği
db.urunler.createIndex({
"kategori": 1,
"ozellikler.$**": 1
});
setFeatureCompatibilityVersion komutunu çalıştırınAlesta Web ekibi olarak tüm migration adımlarını staging ortamlarında doğruladık.
MongoDB 8.0, NoSQL veritabanı dünyasında performans çıtasını yeniden belirleyen bir sürüm. Time series için Block Processing ile 10-100x hızlanma, vector search'te quantization ile %96 daha az bellek, genel olarak %25+ throughput artışı. Alesta Web olarak müşteri projelerimizin tamamını 8.0'a taşıdık ve sonuçlar kullanıcı deneyiminde gözle görülür fark yarattı (visibly improved user experience).
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2026 Alesta Web — alestaweb.com. Tüm hakları saklıdır.