NestJs Mongo : Setup MongoDB Conenction In NestJs


NestJS के साथ MongoDB को integrate करना एक काफी common और efficient combination है जब आपको NoSQL database के साथ काम करना होता है।

MongoDB को NestJS के साथ connect करने के लिए हम Mongoose का use करते हैं, जो एक powerful Object Data Modeling (ODM) library है। Mongoose आपको MongoDB के documents के साथ object-oriented तरीके से काम करने कि सुविधा देता है।

इस topic में हम step-by-step देखेंगे कि कैसे NestJS के साथ MongoDB को setup करते हैं और कैसे यह check करते हैं कि connection successfully establish हुआ या नहीं।

What is Mongoose ?

Mongoose एक ODM (Object Data Modeling) library है जो MongoDB के साथ काम करने के लिए use होती है। यह MongoDB के documents को JavaScript objects के साथ map करती है, जिससे आप data को clean और structured तरीके से handle कर सकते हैं।

Mongoose आपको MongoDB के साथ schema-based modeling का support भी provide करता है।

कुछ Mongoose के advantages -

  • Schema-based modeling : आप अपने data के structure को define कर सकते हैं।

  • Validation : Data को validate करने के लिए built-इन support .

  • Middleware support : Pre-hooks और post-hooks का support for queries and data operations.

Setup MongoDB In NestJs

Mongoose और MongoDB के साथ NestJS को integrate करने के लिए आपको Mongoose को NestJS के project में install करना पड़ेगा।

npm install @nestjs/mongoose mongoose

अब हम MongoDB के साथ connection को setup करेंगे। इसके लिए हम MongooseModule का use करते हैं जो MongoDB के connection को NestJS application के साथ bind करता है।

सबसे पहले, हम MongooseModule को अपने AppModule में import करेंगे और MongoDB के URI के through connection को setup करेंगे।

File : src/app.module.ts

import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; import { UserModule } from './user/user.module'; @Module({ imports: [ MongooseModule.forRoot('mongodb://localhost:27017/nest_mongo_app', { useNewUrlParser: true, useUnifiedTopology: true, }), UserModule, ], }) export class AppModule {}

यहां हमने

  • MongooseModule.forRoot() का use किया है ताकि MongoDB के साथ connection setup किया जा सके।

  • MongoDB URI में हम mongodb://localhost:27017/nestdb use कर रहे हैं, जो MongoDB के local instance को refer करता है और nestdb हमारे database का नाम है।

NestJs Check If MongoDB Connected

अब हम check करेंगे कि MongoDB के साथ connection successfully establish हुआ या नहीं। यह करने के लिए हम NestJS lifecycle hook का use करेंगे।

हम onModuleInit() lifecycle hook का use करेंगे और Mongoose connection के status को check करेंगे.

File : src/app.service.ts

import { Injectable, OnModuleInit } from '@nestjs/common'; import { Connection } from 'mongoose'; import { InjectConnection } from '@nestjs/mongoose'; @Injectable() export class AppService implements OnModuleInit { constructor(@InjectConnection() private readonly connection: Connection) {} onModuleInit() { const state = this.connection.readyState; console.log('MongoDB connection state:', state); // 1 = connected, 0 = disconnected if (state === 1) { console.log('MongoDB connection successful!'); } else { console.error('Failed to connect to MongoDB.'); } } }

यहां

  • @InjectConnection() का use करके हम Mongoose connection को inject कर रहे हैं।

  • onModuleInit() method को override करके हम MongoDB connection का status check करते हैं।

  • connection.readyState MongoDB connection का state return करता है , 1 का मतलब connected है, और 0 का मतलब disconnected है।

अगर connection successful है, तो console में "MongoDB connection successful!" message print होगा।

NestJs MongoDB Create Schema

MongoDB में data को model करने के लिए हमें Schema बनाना पड़ता है। Mongoose के साथ हम एक schema define करेंगे जो MongoDB के documents को represent करेगी।

चलिए अब हम एक simple User Model बनाते हैं।

File : src/user/schemas/user.schema.ts

import { Schema, Prop, SchemaFactory } from '@nestjs/mongoose'; import { Document } from 'mongoose'; @Schema() export class User extends Document { @Prop({ required: true }) name: string; @Prop({ required: true, unique: true }) email: string; @Prop({ required: true }) password: string; } export const UserSchema = SchemaFactory.createForClass(User);

यहां

  • @Schema() decorator का use करके हम User document का schema define कर रहे हैं।

  • @Prop() का use करके हम schema के fields और उनकी properties define कर रहे हैं (e.g., required, unique).

  • SchemaFactory.createForClass() से User class का schema create किया गया है जो MongoDB में store होगा।

Conclusion

इस topic में हमने देखा कैसे NestJS के साथ MongoDB का connection setup करते हैं और कैसे check करते हैं कि connection successfully establish हुआ या नहीं।

हमने MongoDB के लिए Mongoose का use करते हुए एक User model भी बनाया। आगे सीखेंगे कि कैसे MongoDB Documents (Tables) में data insert करते हैं।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook