MongoDB ile Node.js Entegrasyonu sayesinde Node.js ile MongoDB’yi kullanmak, modern web uygulamaları geliştirmek için yaygın bir yaklaşımdır. Bu entegrasyon, geliştiricilere tam yığın (full-stack) JavaScript geliştirme deneyimi sunar ve veri işleme, saklama ve sunma süreçlerini oldukça verimli hale getirir. İşte Node.js ile MongoDB’yi birlikte kullanarak bir web uygulaması geliştirmenin detaylı adımları:
mongoose
kütüphanesini kullanabilirsiniz. Mongoose, MongoDB için popüler bir ODM (Object Data Modeling) kütüphanesidir.npm install mongoose
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', {
useNewUrlParser: true,
useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() { console.log("MongoDB'ye başarıyla bağlanıldı!");
});
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
age: {
type: Number,
required: true
},
city: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
createdAt: {
type: Date,
default:
Date.now
}
});
const User = mongoose.model('User', userSchema);
,const newUser = new User ({
;name: 'Ali',
age: 30,
city: 'İstanbul',
email: 'ali@example.com'
});
newUser.save((err) => { if (err)
return console.error(err);
console.log('Kullanıcı başarıyla kaydedildi!');
});
find
, findOne
gibi yöntemlerini kullanabilirsiniz. Örneğin, belirli bir yaşa sahip tüm kullanıcıları bulmak için:User.find({ age: 30 }, (err, users) =>
{ if (err) return console.error(err);
console.log(users);
});
updateOne
, updateMany
gibi yöntemleri kullanabilirsiniz. Örneğin, belirli bir kullanıcının yaşını güncellemek için:User.updateOne({ name: 'Ali' }, { age: 31 }, (err, res) => {
if (err) return console.error(err);
console.log('Kullanıcı başarıyla güncellendi!');
});
deleteOne
, deleteMany
gibi yöntemleri kullanabilirsiniz. Örneğin, belirli bir kullanıcıyı silmek için:User.deleteOne({ name: 'Ali' }, (err) => {
if (err) return console.error(err);
console.log('Kullanıcı başarıyla silindi!');
});
Node.js ve MongoDB entegrasyonunda daha ileri seviye kullanım senaryoları şunlardır:
const orderSchema = new mongoose.Schema({
product: String,
quantity: Number,
price: Number,
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
});
const Order = mongoose.model('Order', orderSchema);
aggregate
yöntemi ile toplu işlemler yapabilirsiniz:User.aggregate([
{ $match: { age: { $gte: 30 } } },
{ $group: { _id: "$city", total: { $sum: 1 } } }
], (err, result) => {
if (err) return console.error(err);
console.log(result);
});
const bcrypt = require('bcrypt');
userSchema.pre('save', function(next) {
if (this.isModified('password')) {
this.password = bcrypt.hashSync(this.password, 10);
}
next();
});
Node.js ile MongoDB’yi entegre etmek, modern ve ölçeklenebilir web uygulamaları geliştirmek için güçlü bir kombinasyon sunar. Mongoose gibi kütüphaneler, veritabanı işlemlerini kolaylaştırır ve geliştiricilere esneklik sağlar. Bu entegrasyon sayesinde, tam yığın JavaScript kullanarak hızlı ve verimli uygulamalar geliştirebilirsiniz. MongoDB’nin dinamik şeması ve yüksek performansı ile Node.js’in asenkron yapısı, birlikte modern web geliştirme projeleri için ideal bir temel oluşturur. Sizde bu ideal temelden yararlanmak için Avmek Creative Media‘yı tercih edebilirsiniz.