Giriş
Mongoose modelleri, MongoDB veritabanlarında verileri yönetmek için kullanılır. Bu makalede, Mongoose modellerinin nasıl oluşturulacağı, kullanıldığı ve veritabanı şemalarının nasıl tanımlandığı üzerine detaylı bir rehber sunacağız.
Mongoose Modelleri ve Şemalarının Önemi
Mongoose, MongoDB için bir ODM (Object Document Mapping) kütüphanesidir. Mongoose modelleri, MongoDB dokümanları için bir şema tanımı sağlar ve bu şemalar, veritabanı ile etkileşimde bulunmak için kullanılır.
Modellerin Tanımlanması
Mongoose modeli, bir MongoDB koleksiyonunu ve koleksiyondaki dokümanların şeklini tanımlar. Bir model, Mongoose’un model
metodunu kullanarak oluşturulur ve şema üzerinde tanımlanır.
Şemaların Oluşturulması
Şema, bir dokümanın veri yapısını ve veritabanı içinde nasıl saklanacağını tanımlar. Şema, veri türleri, varsayılan değerler ve validasyon kuralları içerebilir.
Şema Tanımlama
Veri Türleri
Mongoose şemalarında çeşitli veri türleri kullanılabilir. Bunlar arasında String
, Number
, Date
, Buffer
, Boolean
, ObjectId
, Array
, ve Mixed
bulunur.
Varsayılan Değerler ve Validasyon
Şemalarda, alanlara varsayılan değerler atanabilir ve veri geçerliliği için validasyon kuralları belirlenebilir.
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: { type: String, required: true },
age: { type: Number, default: 30 },
email: { type: String, required: true, lowercase: true }
});
Özel Metodlar ve Statikler
Şemalara özel metodlar ve statik fonksiyonlar ekleyerek, model üzerinde karmaşık işlemleri kolaylaştırabilirsiniz.
userSchema.methods.fullName = function() {
return this.firstName + ' ' + this.lastName;
};
userSchema.statics.findByName = function(name) {
return this.find({ name: new RegExp(name, 'i') });
};
Model Kullanımı
Veri Oluşturma ve Kaydetme
Modeliniz üzerinde bir örnek oluşturduktan sonra, save
metodunu kullanarak veriyi veritabanına kaydedebilirsiniz.
const User = mongoose.model('User', userSchema);
const user = new User({name: 'Ali', age: 25, email: 'ali@example.com'});
user.save();
Sorgulama İşlemleri
Mongoose modelleri, veritabanında veri sorgulamak için çeşitli metodlar sunar.
// Tüm kullanıcıları bul
User.find({}, function(err, users) {
if (err) throw err;
console.log(users);
});
// İsme göre kullanıcı bul
User.findOne({ name: 'Ali' }, function(err, user) {
if (err) throw err;
console.log(user);
});
Sonuç
Mongoose modelleri ve şemaları, MongoDB veritabanları ile çalışırken büyük esneklik ve güç sunar. Bu makalede, Mongoose modellerinin nasıl oluşturulacağı, kullanılacağı ve veritabanı şemalarının nasıl tanımlandığı üzerine ayrıntılı bir rehber sunduk. Bu bilgilerle, kendi Node.js uygulamalarınızda Mongoose modellerini etkili bir şekilde kullanabilir ve veritabanı işlemlerinizi optimize edebilirsiniz.