@joktec/mongo v0.0.146
Table of Contents
Introduction
This library provides an easy-to-use interface for working with MongoDB in NestJS applications. It is built on top of the popular mongoose
and @typegoose/typegoose
libraries, and provides a set of convenient abstractions for working with these libraries.
Installation
To install this library, use either npm
or yarn
:
npm install -S @joktec/core @joktec/mongo
# or
yarn add -S @joktec/core @joktec/mongo
Getting Started
Configuration
To use this library, you must first provide the necessary configuration. This can be done by creating a config.yml file in your application's root directory, with the following content:
mongo:
host: localhost
port: 27017
user: my_user
password: my_pass
database: my_database
Replace the values with your actual database connection information.
Module
Once you have provided the configuration, you can import the MongoModule
in your AppModule
:
import { CoreModule, Module } from '@joktec/core';
import { MongoModule } from '@joktec/mongo';
@Module({
imports: [CoreModule, MongoModule],
})
export class AppModule {}
Service
You can then use the MongoService to interact with the database:
import { Injectable } from '@joktec/core';
import { MongoService } from '@joktec/mongo';
@Injectable()
export class UserService {
constructor(private readonly mongoService: MongoService) {}
async getUsers() {
const users = await this.mongoService.getModel(User).findAll();
return users;
}
}
Repository
Define a Model
You can define a model using @joktec/mongo
(based on interface of @typegoose/typegoose
):
import { modelOptions, mongoose, prop } from '@joktec/mongo';
@modelOptions({ schemaOptions: { collection: 'users' } })
export class User {
@prop({ auto: true, immutable: true })
public _id?: mongoose.Types.ObjectId;
@prop()
firstName: string;
}
Define a Repository
You can create a repository for your model by extending the MongoRepository class and providing the model type as a generic argument:
import { Injectable } from '@joktec/core';
import { MongoRepository } from '@joktec/mongo';
import { User } from './user.model';
@Injectable()
export class UserRepository extends MongoRepository<User> {}
Using Repository in Service
You can then use the repository in your service:
import { Injectable } from '@nestjs/common';
import { UserRepository } from './user.repository';
@Injectable()
export class UserService {
constructor(
private readonly userRepository: UserRepository,
) {}
async getUsers() {
const users = await this.userRepository.findAll();
return users;
}
}
Reference
Contributing
Contributions to @joktec/mongo
are welcome. If you would like to contribute, please fork the repository, make your changes, and submit a pull request.
Please make sure to update tests as appropriate.
6 days ago
2 months ago
2 months ago
3 months ago
4 months ago
4 months ago
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
9 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago