CTRL K
MongoDB
2 min read
MongoDB
MongoDB - bu ma’lumotlarni saqlash uchun ishlatadigan bazamiz. U oddiy jadvallar o’rniga JSON ga o’xshash hujjatlarni saqlaydi. Bu bizga moslashuvchanlik beradi.
MongoDB ga ulanish
src/config/db.js faylini yarating:
const mongoose = require('mongoose');
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI);
console.log(`MongoDB ulandi: ${conn.connection.host}`);
} catch (error) {
console.error(`Xato: ${error.message}`);
process.exit(1);
}
};
module.exports = connectDB;Bu kod .env faylidagi MONGO_URI manzilidan foydalanib MongoDB ga ulanadi. Agar xatolik bo’lsa, xabar chiqaradi va dasturni to’xtatadi.
Model yaratish
Model - bu ma’lumot qanday ko’rinishda saqlanishini belgilaydi. Eslatma uchun bizga sarlavha, matn va yaratilgan sana kerak.
src/models/Note.js faylini yarating:
const mongoose = require('mongoose');
const noteSchema = new mongoose.Schema({
title: {
type: String,
required: [true, 'Sarlavha kiritilishi shart'],
trim: true,
maxlength: [100, 'Sarlavha 100 ta belgidan oshmasligi kerak']
},
content: {
type: String,
required: [true, 'Matn kiritilishi shart']
},
createdAt: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('Note', noteSchema);Schema tushuntirishi
- title - Eslatmaning sarlavhasi. Bo’sh bo’lishi mumkin emas va 100 ta belgidan oshmasligi kerak.
- content - Eslatmaning asosiy matni. Bo’sh bo’lishi mumkin emas.
- createdAt - Eslatma qachon yaratilgani. Avtomatik qo’yiladi.
Model bilan ishlash
Modelni yaratgandan keyin uni controller da ishlatamiz. Masalan:
const Note = require('../models/Note');
// Yangi eslatma yaratish
const note = await Note.create({
title: 'Birinchi eslatma',
content: 'Bu mening birinchi eslatmam'
});
// Barcha eslatmalarni olish
const notes = await Note.find();
// Bitta eslatmani olish
const note = await Note.findById(id);
// Eslatmani yangilash
const note = await Note.findByIdAndUpdate(id, { title: 'Yangi nom' }, { new: true });
// Eslatmani o'chirish
await Note.findByIdAndDelete(id);Keyingi bo’limda controller ni to’liq yozamiz.