Mongoose Custom Methods ve Statics Kullanımı
Mongoose Custom Methods ve Statics Kullanımı
Mongoose, MongoDB ile çalışma süreçlerinde esneklik ve işlevsellik sunan güçlü bir Node.js kitaplığıdır. Çoğu zaman sadece şema tanımlamak yeterli olmaz; projelerde tekrar kullanılabilir fonksiyonlara ihtiyaç duyulabilir. İşte burada Mongoose custom methods (özel metodlar) ve statics (statik fonksiyonlar) devreye girer. Bu yazıda "Mongoose Custom Methods ve Statics Kullanımı" hakkında detaylı bilgiler ve örnekler paylaşacağım.
Mongoose Custom Methods Nedir?
Custom methods, yani özel metodlar, bir şemadan üretilen doküman (belge) örnekleri üzerinde işlem yapmanızı sağlar. Başka bir deyişle, bir doküman nesnesi oluşturduğunuzda, custom method sayesinde bu nesneye özel işlevler ekleyebilirsiniz. Bu pratik yöntem, kodun tekrarını azaltır ve daha okunaklı veri işlemleri oluşturmanıza olanak tanır.
Custom Methods Tanımlama ve Kullanımı
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
password: String
});
userSchema.methods.isValidPassword = function(password) {
// Gerçek uygulamada hash karşılaştırması yapılmalı
return this.password === password;
};
const User = mongoose.model('User', userSchema);
// Kullanım
async function login() {
const user = await User.findOne({ name: 'admin' });
if (user && user.isValidPassword('1234')) {
console.log('Giriş başarılı!');
} else {
console.log('Hatalı giriş!');
}
}
Burada isValidPassword fonksiyonu yalnızca bir User dokümanı (instance) üzerinde çalışır.
Mongoose Statics Nedir?
Statics, model seviyesine ait fonksiyonlardır. Yani doğrudan model üzerinden çağrılır ve çoğunlukla birçok dokümana aynı anda veya veritabanı genelinde işlem yapmak için tercih edilir. Mongoose custom statics ile, çoğunlukla toplu işlemler veya özel sorgular için fonksiyonlar oluşturabilirsiniz.
Static Method Oluşturma ve Kullanımı
userSchema.statics.findByName = function(name) {
return this.find({ name });
};
const User = mongoose.model('User', userSchema);
// Kullanım
async function listAdmins() {
const admins = await User.findByName('admin');
console.log(admins);
}
Buradaki findByName fonksiyonu model nesnesinin (User) üzerinden çağrılır ve ilgili isimdeki tüm kullanıcıları döndürür.
Sonuç ve İpuçları
"Mongoose Custom Methods ve Statics Kullanımı" başlıklı makalede gördüğümüz gibi, Mongoose'da hem custom methods hem de statics ile şema ve model bazında kendi yardımcı metodlarımızı üretebiliriz. Bu yapı sayesinde kod kalitesi ve bakım kolaylığı artar, projeler büyüdükçe tekrar kullanılabilir, anlamlı ve düzenli kodlar yazmak mümkün hale gelir. Projelerinizde custom methods ve statics kullanarak kodunuzu bir adım öteye taşıyabilirsiniz.

Yorum Gönder