How to drop all collections in a MongoDB database using Mongoose

August 19, 2020

During testing your API you often want to reset your DB for each test. This was the problem that I was facing.

I solved this by creating a reset endpoint wich drops all collections inside my MongoDB database.

Code sample is worth a thousand words, so here we go:

const mongoose = require("mongoose");
const express = require("express");
const router = express.Router();

// @route GET api/reset
// @access Private
router.delete("/", async (req, res) => {
  try {
    const db = mongoose.connection.db;

    // Get all collections
    const collections = await db.listCollections().toArray();

    // Create an array of collection names and drop each collection
      .map((collection) =>
      .forEach(async (collectionName) => {

  } catch (e) {

module.exports = router;