Node.js mongoose Modülü
Node.js ile geliştirilen uygulamaya uygun model oluşturmak ve MongoDB işlemlerini daha kolay hale getirmek için kullanılan mongoose modülü ile ilgili bilgiler yer alıyor.
Mongoose nedir?
Mongoose geliştirilen uygulamaya göre model oluşturarak MongoDB işlemlerini kolaylaştıran bir ODM modülüdür.
MongoDB veritabanında veriler karmaşık bir şekilde saklanabilir.
Bu özellik iyi gibi görünse de verilerin karmaşık saklanması verilerle işlem yaparken çeşitli zorluklar ortaya çıkartır.
Bu sorunun önüne geçebilmek ve veri içindeki alanları belirlemek için modelleme yapılır.
Mongoose kurulumu
Modülü aşağıdaki komutlar kullanılarak indirilir.
npm install mongoose
veya
npm install mongoose --save
Mongoose kullanımı
Modül içerisinde MongoDB işlemleri yapmak için çeşitli sınıf, metot ve özelliğe sahiptir.
Veritabanı bağlantısı
Mongoose ile veritabanı bağlantısı için connect metodu kullanılır.
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/VT_ADI');
Metot ayrıca MongoDB bağlantı ayarlarını içeren nesne parametresi alır.
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/VT_ADI', {
useNewUrlParser: true
});
Modelleme
Mongoose ile veriyi modellemek için modül içinde yer alan Schema sınıfı kullanılır.
Sınıf parametre olarak modelde yer alacak alan adı, alan tipi ve ayrıca çeşitli kısıtlamalar alır.
const Schema = mongoose.Schema;
let kullaniciSchema = new Schema({
adi: String,
soyadi: { text: String },
yasi: Number,
eposta: { type: String, required: [true, 'E-posta alanı zorunludur.'] }
});
Model için gerekli olan şema oluşturulduktan sonra mongoose içinde yer alan model metodu ile oluşturulan model kullanılabilir hale getirilir.
let Kullanici = mongoose.model('kullanici', kullaniciSchema);
Metot geriş dönüş değeri olarak MongoDB işlemlerinde kullanılacak çeşitli metotları içeren nesne döndürür.
Veri ekleme
Veri eklemek için create metodu veya save metodu kullanılır.
Kullanici.create({ adi: 'Yusuf', soyadi: 'Sezer', yasi: 75, eposta: '[email protected]' })
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
veya
let yeniKullanici = new Kullanici({
adi: 'Yusuf',
soyadi: 'Sezer',
yasi: 75,
eposta: '[email protected]'
});
yeniKullanici.save()
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
veya
(async function () {
const eklenen = await Kullanici.create({ adi: 'Yusuf', soyadi: 'Sezer', yasi: 75, eposta: '[email protected]' });
console.log(eklenen);
})();
Veri sorgulama
Veri sorgulamak ve verileri listelemek için MongoDB modülünde içinde yer alan find, findOne ve findById gibi metotlar kullanılabilir.
Tüm verileri almak için find metodu kullanılabilir.
Kullanici.find({})
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
Veri sorgulamak için find metoduna sorgu parametreleri yazılır.
Kullanici.find({ adi: 'Yusuf' })
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
Veri güncelleme
Veri güncellemek için updateOne, updateMany, findByIdAndUpdate, findOneAndUpdate metotları kullanılır.
Kullanici.findOneAndUpdate({ adi: 'Yusuf' }, { adi: 'Yusuf Sefa' })
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
Veri silme
Verileri silmek için deleteOne, deleteMany, findByIdAndRemove, findOneAndRemove metodu kullanılır.
Kullanici.deleteOne({ adi: 'Yusuf Sefa' })
.catch(err => {
throw err;
})
.then(result => {
console.log(result);
});
Node.js ve MongoDB ile uygulama geliştirirken Mongoose kullanımı verilerin yönetiminde faydalı olacaktır.
Node.js Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.