https://github.com/mikemajesty/nestjs-mongoose-generic-repository
Nestjs mongoose generic repository
https://github.com/mikemajesty/nestjs-mongoose-generic-repository
generic-repository mogoose mongodb nestjs repository repository-pattern
Last synced: 4 months ago
JSON representation
Nestjs mongoose generic repository
- Host: GitHub
- URL: https://github.com/mikemajesty/nestjs-mongoose-generic-repository
- Owner: mikemajesty
- Created: 2022-01-15T18:52:43.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-12-30T18:00:56.000Z (almost 2 years ago)
- Last Synced: 2025-08-09T11:59:40.662Z (4 months ago)
- Topics: generic-repository, mogoose, mongodb, nestjs, repository, repository-pattern
- Language: TypeScript
- Homepage:
- Size: 22.5 KB
- Stars: 14
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Nestjs Mongoose Generic Repository
```bash
$ npm i nestjs-mongoose-generic-repository
```
## Usage
```bash
├── cats
├── controller.ts
├── entity.ts
├── module.ts
├── repository.ts
├── schema.ts
```
```ts
--repository.ts
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { Repository } from 'nestjs-mongoose-generic-repository';
import { CatDocument, Cats } from './schema';
@Injectable()
export class CatsRepository extends Repository {
constructor(@InjectModel(Cats.name) private entity: Model) {
super(entity);
}
}
```
```ts
--controller.ts
import { Body, Controller, Post } from '@nestjs/common';
import { CreatedModel } from 'nestjs-mongoose-generic-repository';
import { CatsDTO } from './entity';
import { CatsRepository } from './repository';
@Controller('cats')
export class CatsController {
constructor(private readonly catRepository: CatsRepository) {}
@Post()
async save(@Body() model: CatsDTO): Promise {
const saved = await this.catRepository.create(model);
return saved;
}
}
```
---
### Operators
```bash
create
find
findById
findAll
remove
updateOne
updateMany
```
#### Lib types
```ts
import { ObjectId } from 'mongoose';
export type UpdatedModel = {
matchedCount: number;
modifiedCount: number;
acknowledged: boolean;
upsertedId: unknown | ObjectId;
upsertedCount: number;
};
export type RemovedModel = {
deletedCount: number;
deleted: boolean;
};
export type CreatedModel = {
id: string;
created: boolean;
};
```
---
The following is a list of all the people that have contributed to
nestjs-mongoose-generic-repository. Thanks for your contributions!
[
](https://github.com/mikemajesty)
## License
It is available under the MIT license.
[License](https://opensource.org/licenses/mit-license.php)