Upgrade to Pro

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

  1. Local Setup (offline use)

  2. MongoDB Atlas (cloud-based)


 Step 1: Choose Your Setup

Option A: Install MongoDB Locally (Windows)

  1. Go to: https://www.mongodb.com/try/download/community

  2. Download the MongoDB Community Server.

  3. Install it using default options (make sure “MongoDB Compass” is checked).

  4. 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)

  1. Go to: https://www.mongodb.com/cloud/atlas/register

  2. Create a free account.

  3. Click “Build a Database” → Select Shared (Free Tier).

  4. Choose:

    • AWS/GCP/Azure (pick closest region)

    • Cluster Name (e.g. Cluster0)

  5. Create a database user (username/password).

  6. Allow your IP address to connect.

  7. 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

Flowisetech For easy access