Mongoose Query ve Find Metodları Detaylı Rehber


Mongoose Query ve Find Metodları Detaylı Rehber

Mongoose, Node.js ortamında MongoDB ile çalışmayı kolaylaştıran popüler bir ODM (Object Data Modeling) kütüphanesidir. Mongoose Query ve Find metodları sayesinde veritabanındaki verileri okuma, filtreleme ve işleme işlemleri çok daha pratik ve esnek hale gelir. Bu makalede, Mongoose Query ve Find metodlarının temel kullanım mantığını, örnek kodlarla avantajlarını ve ileri seviye sorgu tekniklerini ele alıyoruz.

Mongoose Query ve Find Metodlarının Temelleri

Mongoose ile veritabanından veri çekmek için en sık kullanılan metod find’dir. Ayrıca findOne, findById gibi türevlerini de kullanabilirsiniz. Query yapısı ile sorgunuzu zincirleme olarak daha okunabilir ve güçlü bir hale getirebilirsiniz.

Temel find Kullanımı

const User = require("./models/User");

// Tüm kullanıcıları çekmek
User.find({}, (err, users) => {
  if (err) throw err;
  console.log(users);
});

Filtreli Sorgulama Örneği

// Yaşı 18’den büyük kullanıcılar
User.find({ age: { $gt: 18 } }).then(users => {
  console.log(users);
});

Query Zinciri ve Gelişmiş Kullanım

Mongoose Query metodları sayesinde sadece filtrelemekle kalmaz, aynı zamanda select, sort, limit gibi zincirlerle sorgunuzu özelleştirebilirsiniz. Bu sayede hem daha okunabilir kodlar yazar, hem de performans odaklı projeler geliştirebilirsiniz.

Örnek: Alan Seçimi ve Sıralama

User.find({ isActive: true })
  .select("name email") // Sadece ad ve email gelsin
  .sort({ createdAt: -1 }) // Tarihe göre tersten sırala
  .limit(10) // Sadece ilk 10 kullanıcı
  .exec((err, users) => {
    if (err) {
      console.error(err);
      return;
    }
    console.log(users);
  });

Sonuç: Mongoose Query ve Find ile Daha Esnek Veritabanı Sorguları

Mongoose Query ve Find metodları, MongoDB üzerinde güçlü ve güvenilir sorgular oluşturmak için vazgeçilmez araçlardır. Gerek basit veri çekme işlemlerinde, gerekse karmaşık filtreleme ve proje ihtiyaçlarında geliştiricilere büyük esneklik sunar. Bu metotların detaylarını öğrenmek, projelerinizde daha etkili ve hızlı çözümler üretmenize katkı sağlar.