How To Set up MongoDB and build a simple full-stack app using MongoDB

-
Local Setup (offline use)
-
MongoDB Atlas (cloud-based)
Step 1: Choose Your Setup
Option A: Install MongoDB Locally (Windows)
-
Go to: https://www.mongodb.com/try/download/community
-
Download the MongoDB Community Server.
-
Install it using default options (make sure “MongoDB Compass” is checked).
-
After installation, run:
-
MongoDB server: Should start automatically as a service.
-
Compass: GUI to explore your databases.
-
📌 To test:
Open Command Prompt and type:
mongo
Option B: Use MongoDB Atlas (Recommended for Beginners)
-
Go to: https://www.mongodb.com/cloud/atlas/register
-
Create a free account.
-
Click “Build a Database” → Select Shared (Free Tier).
-
Choose:
-
AWS/GCP/Azure (pick closest region)
-
Cluster Name (e.g.
Cluster0
)
-
-
Create a database user (username/password).
-
Allow your IP address to connect.
-
Get the Connection URI. Example:
mongodb+srv://<username>:<password>@cluster0.mongodb.net/myFirstDatabase
Step 2: Build a Simple Node.js App
We’ll make a small "Users Database" using Node.js + Express + MongoDB.
Folder Structure
mongodb-users-app/
│
├── server.js
├── models/
│ └── User.js
├── routes/
│ └── userRoutes.js
└── .env
Step-by-step:
1. Initialize Project
mkdir mongodb-users-app
cd mongodb-users-app
npm init -y
npm install express mongoose dotenv
2. Create .env
File
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/usersDB
PORT=5000
Replace
<username>
and<password>
with your Atlas credentials.
3. server.js
const express = require('express');
const mongoose = require('mongoose');
const dotenv = require('dotenv');
const userRoutes = require('./routes/userRoutes');
dotenv.config();
const app = express();
app.use(express.json());
app.use('/api/users', userRoutes);
mongoose.connect(process.env.MONGO_URI)
.then(() => {
app.listen(process.env.PORT, () => {
console.log('Server running and MongoDB connected');
});
})
.catch(err => console.log(err));
4. models/User.js
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
email: String,
createdAt: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('User', userSchema);
5. routes/userRoutes.js
const express = require('express');
const router = express.Router();
const User = require('../models/User');
// Create new user
router.post('/', async (req, res) => {
try {
const user = await User.create(req.body);
res.status(201).json(user);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// Get all users
router.get('/', async (req, res) => {
try {
const users = await User.find();
res.json(users);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
module.exports = router;
Run the App
node server.js
Test the API:
-
POST
http://localhost:5000/api/users
{
"name": "Unyime",
"email": "unyime@example.com"
}
-
GET
http://localhost:5000/api/users
What Next?
You can now:
-
Add validation with Mongoose
-
Create a frontend (React/Vue)
-
Deploy the app on Render/Heroku
-
Add features like login, search, pagination
How To build the React frontend with MongoDB Compass/Atlas setup