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: about 2 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 (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-30T18:00:56.000Z (over 1 year ago)
- Last Synced: 2025-04-18T01:06:22.492Z (about 2 months ago)
- Topics: generic-repository, mogoose, mongodb, nestjs, repository, repository-pattern
- Language: TypeScript
- Homepage:
- Size: 22.5 KB
- Stars: 13
- 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.tsimport { 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.tsimport { 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
```tsimport { 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
## License
It is available under the MIT license.
[License](https://opensource.org/licenses/mit-license.php)