@nestlab/mongo
TypeScript icon, indicating that this package has built-in type declarations

1.0.15 • Public • Published

MongoModule

Installation

$ npm i @nestlab/mongo mongodb
$ npm i -D @types/mongodb

Configuration

Configuration for main module

import { MongoModule } from './mongo.module';

MongoModule.forRoot(
    [ // Connections
        {
            name: 'PRIMARY',
            uri: 'mongodb://localhost:27017/primary-database',
            reconnectionTimeout: 2000,
        },
        {
            name: 'SECONDARY',
            uri: 'mongodb://localhost:27017/secondary-database',
            reconnectionTimeout: 2000,
        },
    ], 
    [Entity1, Entity2], // Entities   
);

Configuration for feature module

import { MongoModule } from './mongo.module';

MongoModule.forFeature([ // Entities
    Entity3,
    Entity4,
]); 

Usage

Entity declaration

@Entity('cars') // Collection name
export class Car {
  name: string;
}

Inject connections

export class CarController {
    constructor(@InjectConnection('PRIMARY') primaryConnection: MongoConnection,
                @InjectConnection('SECONDARY') secondaryConnection: MongoConnection) {    
    } 
}

Inject repository

export class CarController {
    constructor(@InjectRepository(Car) carRepositry: Repository<Car>,
                @InjectRepository(Entity) entityRepository: Repository<Entity>) {    
    } 
}

Creation custom repositories

@EntityRepository(Car)
export class CarRepository extends Repository<Car> {
    // Your implementation...
}

Injection the same as in default repositories.

Enjoy!

/@nestlab/mongo/

    Package Sidebar

    Install

    npm i @nestlab/mongo

    Weekly Downloads

    1

    Version

    1.0.15

    License

    MIT

    Unpacked Size

    58.5 kB

    Total Files

    83

    Last publish

    Collaborators

    • chvarkov