@origins-digital/nestjs-mongodb
v3.1.3
Published
Common nestjs mongodb utilities for all nestjs projects
Readme
@origins-digital/nestjs-mongodb
A NestJS module for MongoDB integration with automatic reconnection handling and connection management.
Installation
npm install @origins-digital/nestjs-mongodbFeatures
- Seamless MongoDB integration with NestJS
- Automatic reconnection handling with exponential backoff
- Connection error logging and monitoring
- Global or module-scoped connection management
- Type-safe MongoDB operations
Usage
Basic Setup
import { Module } from '@nestjs/common';
import { MongoDbModule } from '@origins-digital/nestjs-mongodb';
import { ConfigService } from '@nestjs/config';
@Module({
imports: [
MongoDbModule.forRoot({
hostConnectionString: 'mongodb://localhost:27017',
databaseName: 'your-database',
global: true, // Optional: makes the connection available globally
}),
],
})
export class AppModule {}Using Environment Variables
import { Module } from '@nestjs/common';
import { MongoDbModule } from '@origins-digital/nestjs-mongodb';
import { ConfigService } from '@nestjs/config';
@Module({
imports: [
MongoDbModule.forRoot({
hostConnectionString: process.env.MONGODB_URI,
databaseName: process.env.MONGODB_DATABASE,
}),
],
})
export class AppModule {}Using in Services
import { Injectable, Inject } from '@nestjs/common';
import { Db } from 'mongodb';
import { MONGODB_PROVIDER } from '@origins-digital/nestjs-mongodb';
@Injectable()
export class UsersService {
constructor(
@Inject(MONGODB_PROVIDER)
private readonly db: Db,
) {}
async findAll() {
return this.db.collection('users').find().toArray();
}
async create(user: any) {
return this.db.collection('users').insertOne(user);
}
}Connection Management
The module includes automatic reconnection handling with exponential backoff:
- Initial connection attempt with 5-second timeout
- If connection fails, retry with increasing intervals
- Automatic reconnection on connection errors
- Detailed error logging
Error Handling
The module provides comprehensive error handling:
- Connection errors are logged with detailed information
- Automatic reconnection attempts with exponential backoff
- Connection state monitoring
- Error events handling
Configuration Options
interface MongoDBOptions {
hostConnectionString: string; // MongoDB connection string
databaseName: string; // Database name
global?: boolean; // Optional: make connection global
}Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
