MongoDB
Document based NoSQL database
db/mongodb.ts
import { MongoClient } from "mongodb"
const uri = process.env.MONGO_URI || "mongodb://mongo:27017/"
let client: MongoClient | undefined
let clientPromise: Promise<MongoClient> | undefined
if (process.env.NODE_ENV === "development") {
if (!global._mongoClientPromise) {
client = new MongoClient(uri)
global._mongoClientPromise = client.connect()
}
clientPromise = global._mongoClientPromise
} else {
client = new MongoClient(uri)
clientPromise = client.connect()
}
export default clientPromiseMongoDB
I use MongoDB for my database, setting up a connection with MongoClient. Depending on the environment, it creates either a global connection promise for development or a regular one for production, exporting a promise that resolves to the connected MongoDB client. This connection is then imported into my Next.js API routes to interact with my MongoDB collections.