MongoDB ve Mongoose: JavaScript ile NoSQL Veritabanı Yönetimi

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Neden MongoDB? (Esneklik ve Hız)​


Klasik SQL veritabanlarında (MySQL, PostgreSQL) bir veriyi kaydetmeden önce tabloları ve sütunları katı bir şekilde tanımlamanız gerekir. MongoDB'de ise veriler Document (Doküman) bazlıdır.


  • []Esnek Şema: Her kayıt aynı alanlara sahip olmak zorunda değildir.
    []JSON Formatı: Veriler { ad: "Can" } şeklinde saklanır, bu da JavaScript ile tam uyum sağlar.
  • Ölçeklenebilirlik: Devasa veri yığınlarını yönetmek ve dağıtmak çok daha kolaydır.

2. Mongoose Nedir? (Düzenleyici Güç)​


MongoDB çok esnektir, ancak bu esneklik bazen karmaşaya yol açabilir. Mongoose, bir "ODM" (Object Data Modeling) kütüphanesidir. Veritabanına neyin girip neyin girmeyeceğine dair kurallar (Şemalar) koymamızı sağlar.

Kurulum:
Bash:
npm install mongoose

3. Şema ve Model Oluşturma​


Bir "Kullanıcı" verisinin nasıl görüneceğini Mongoose ile şöyle tanımlarız:

JavaScript:
const mongoose = require('mongoose');

// 1. Şema Tanımlama (Kalıp)
const kullaniciSema = new mongoose.Schema({
ad: { type: String, required: true },
email: { type: String, unique: true },
yas: Number,
kayitTarihi: { type: Date, default: Date.now }
});

// 2. Model Oluşturma (Bu kalıptan üretilen koleksiyon)
const Kullanici = mongoose.model('Kullanici', kullaniciSema);

module.exports = Kullanici;

4. Veritabanı Bağlantısı ve CRUD İşlemleri​


Veritabanına bağlanmak ve veri eklemek/okumak modern JavaScript (async/await) ile oldukça akıcıdır.

JavaScript:
// Bağlantı Kurma
mongoose.connect('mongodb://localhost:27017/projemDB')
.then(() => console.log("Veritabanına bağlandık!"))
.catch(err => console.error("Bağlantı hatası:", err));

// Veri Ekleme (Create)
const yeniKullanici = new Kullanici({ ad: "Can", email: "[email protected]", yas: 25 });
await yeniKullanici.save();

// Veri Sorgulama (Read)
const kullanıcılar = await Kullanici.find({ yas: { $gte: 18 } }); // 18 yaş ve üstü

5. Temel Terimler Sözlüğü​


MongoDB TerimiSQL KarşılığıAçıklama
DatabaseDatabaseVeritabanının tamamı.
CollectionTableBenzer dokümanların toplandığı yer (Örn: "Urunler").
DocumentRow/RecordTek bir veri kaydı (JSON objesi).
FieldColumnObjenin içindeki bir anahtar (Örn: "fiyat").



Sonuç

MongoDB ve Mongoose ikilisi, Node.js geliştiricileri için "altın standart"tır. Veriyi bir JavaScript objesi gibi işlemek, geliştirme sürecini inanılmaz hızlandırır. Esnek yapısı sayesinde projeniz büyüdükçe veritabanı yapınızı değiştirmek SQL'deki kadar sancılı olmaz.
 
Geri
Üst