npm i @nestgram/mongo mongoose
npm i @types/mongoose --save-dev
// or
yarn add @nestgram/mongo mongoose
yarn add @types/mongoose -D
Connect mongoose
app.module.ts
import { Module } from 'nestgram';
import { UseMongoConnection } from '@nestgram/mongo';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
controllers: [AppController],
services: [AppService],
modules: [
UseMongoConnection('uri'), // pass uri here
],
})
export class AppModule {}
Create schema
user.schema.ts
import { Schema, Prop, NestSchema } from '@nestgram/mongo';
import { Document } from 'mongoose';
@Schema()
export class User {
@Prop() email: string; // email field (string type)
@Prop() name: string;
@Prop() age: number; // age field (number type)
@Prop({ type: [Object], default: [] }) articles: any[]; // params for field
}
export type UserDocument = User & Document; // export user document
NestSchema.reg(User); // reg schema
Import schema
app.module.ts
import { Module } from 'nestgram';
import { UseMongoConnection, UseMongo } from '@nestgram/mongo';
import { User } from './user.schema.ts';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
controllers: [AppController],
services: [AppService],
modules: [
UseMongoConnection('uri'), // pass uri here
UseMongo(User), // pass schemas here that will be passed to your service
],
})
export class AppModule {}
Get the schema in the service
app.service.ts
import { Service } from 'nestgram';
import { Model } from 'mongoose';
import { User } from './user.schema.ts';
@Service()
export class AppService {
constructor(private readonly User: Model<User>) {}
}
Then
You can then use the model in service methods and call it in controllers