Connect to MongoDB Atlas, define schemas and models, and perform CRUD operations with Mongoose's query API.
npm install mongoose dotenvMONGODB_URI=mongodb+srv://user:[email protected]/mydbconst mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI)
.then(() => console.log('MongoDB connected'))
.catch(err => console.error('MongoDB error:', err));const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: { type: String, required: true, trim: true },
email: { type: String, required: true, unique: true, lowercase: true },
role: { type: String, enum: ['user', 'admin'], default: 'user' },
createdAt: { type: Date, default: Date.now }
});
module.exports = mongoose.model('User', userSchema);const User = require('../models/User');
// GET all users
router.get('/', async (req, res) => {
try {
const users = await User.find().sort('-createdAt').limit(20);
res.json(users);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// POST create user
router.post('/', async (req, res) => {
try {
const user = new User(req.body);
await user.save();
res.status(201).json(user);
} catch (err) {
res.status(400).json({ error: err.message });
}
});mongoose.connect(uri) — connect once at startup. All models share this connection.async/await with Mongoose. Wrap in try/catch for error handling.code: 11000.