0.2.13 • Published 4 months ago

@joktec/mongo v0.2.13

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Table of Contents

  1. Introduction
  2. Installation
  3. Getting Started
  4. Reference
  5. Contributing

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

mongoose

@typegoose/typegoose

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.

0.0.227

10 months ago

0.0.226

10 months ago

0.0.225

11 months ago

0.0.224

11 months ago

0.0.229

10 months ago

0.0.228

10 months ago

0.0.223

12 months ago

0.0.222

12 months ago

0.2.13

4 months ago

0.2.12

5 months ago

0.2.11

5 months ago

0.2.10

5 months ago

0.0.238

9 months ago

0.0.237

10 months ago

0.0.236

10 months ago

0.0.235

10 months ago

0.0.239

7 months ago

0.0.230

10 months ago

0.0.234

10 months ago

0.0.233

10 months ago

0.0.232

10 months ago

0.0.231

10 months ago

0.1.0

7 months ago

0.1.2

7 months ago

0.1.1

7 months ago

0.1.4

7 months ago

0.1.3

7 months ago

0.1.6

6 months ago

0.1.5

7 months ago

0.2.1

6 months ago

0.2.0

6 months ago

0.2.7

5 months ago

0.2.6

5 months ago

0.2.9

5 months ago

0.2.8

5 months ago

0.2.3

6 months ago

0.2.2

6 months ago

0.2.5

6 months ago

0.2.4

6 months ago

0.0.221

12 months ago

0.0.220

12 months ago

0.0.216

1 year ago

0.0.215

1 year ago

0.0.214

1 year ago

0.0.213

1 year ago

0.0.219

1 year ago

0.0.218

1 year ago

0.0.217

1 year ago

0.0.212

1 year ago

0.0.211

1 year ago

0.0.205

1 year ago

0.0.204

1 year ago

0.0.203

1 year ago

0.0.202

1 year ago

0.0.209

1 year ago

0.0.208

1 year ago

0.0.207

1 year ago

0.0.206

1 year ago

0.0.201

1 year ago

0.0.159

1 year ago

0.0.158

1 year ago

0.0.152

1 year ago

0.0.150

1 year ago

0.0.157

1 year ago

0.0.155

1 year ago

0.0.154

1 year ago

0.0.169

1 year ago

0.0.164

1 year ago

0.0.163

1 year ago

0.0.162

1 year ago

0.0.161

1 year ago

0.0.168

1 year ago

0.0.200

1 year ago

0.0.167

1 year ago

0.0.166

1 year ago

0.0.165

1 year ago

0.0.160

1 year ago

0.0.175

1 year ago

0.0.174

1 year ago

0.0.173

1 year ago

0.0.172

1 year ago

0.0.179

1 year ago

0.0.178

1 year ago

0.0.177

1 year ago

0.0.176

1 year ago

0.0.171

1 year ago

0.0.170

1 year ago

0.0.186

1 year ago

0.0.185

1 year ago

0.0.184

1 year ago

0.0.183

1 year ago

0.0.189

1 year ago

0.0.188

1 year ago

0.0.187

1 year ago

0.0.182

1 year ago

0.0.181

1 year ago

0.0.180

1 year ago

0.0.197

1 year ago

0.0.196

1 year ago

0.0.195

1 year ago

0.0.194

1 year ago

0.0.199

1 year ago

0.0.198

1 year ago

0.0.193

1 year ago

0.0.192

1 year ago

0.0.191

1 year ago

0.0.190

1 year ago

0.0.149

1 year ago

0.0.148

1 year ago

0.0.147

1 year ago

0.0.146

1 year ago

0.0.145

2 years ago

0.0.144

2 years ago

0.0.141

2 years ago

0.0.140

2 years ago

0.0.139

2 years ago

0.0.138

2 years ago

0.0.136

2 years ago

0.0.135

2 years ago

0.0.134

2 years ago

0.0.133

2 years ago

0.0.132

2 years ago

0.0.131

2 years ago

0.0.88

2 years ago

0.0.89

2 years ago

0.0.106

2 years ago

0.0.105

2 years ago

0.0.104

2 years ago

0.0.103

2 years ago

0.0.109

2 years ago

0.0.108

2 years ago

0.0.107

2 years ago

0.0.102

2 years ago

0.0.101

2 years ago

0.0.100

2 years ago

0.0.117

2 years ago

0.0.116

2 years ago

0.0.115

2 years ago

0.0.114

2 years ago

0.0.119

2 years ago

0.0.118

2 years ago

0.0.113

2 years ago

0.0.112

2 years ago

0.0.111

2 years ago

0.0.110

2 years ago

0.0.128

2 years ago

0.0.127

2 years ago

0.0.126

2 years ago

0.0.125

2 years ago

0.0.129

2 years ago

0.0.120

2 years ago

0.0.124

2 years ago

0.0.123

2 years ago

0.0.122

2 years ago

0.0.121

2 years ago

0.0.130

2 years ago

0.0.95

2 years ago

0.0.96

2 years ago

0.0.97

2 years ago

0.0.98

2 years ago

0.0.99

2 years ago

0.0.90

2 years ago

0.0.91

2 years ago

0.0.92

2 years ago

0.0.93

2 years ago

0.0.94

2 years ago

0.0.86

2 years ago

0.0.87

2 years ago

0.0.84

2 years ago

0.0.85

2 years ago

0.0.80

2 years ago

0.0.81

2 years ago

0.0.82

2 years ago

0.0.83

2 years ago

0.0.73

2 years ago

0.0.74

2 years ago

0.0.75

2 years ago

0.0.76

2 years ago

0.0.77

2 years ago

0.0.79

2 years ago

0.0.70

2 years ago

0.0.71

2 years ago

0.0.72

2 years ago

0.0.62

2 years ago

0.0.64

2 years ago

0.0.65

2 years ago

0.0.66

2 years ago

0.0.67

2 years ago

0.0.68

2 years ago

0.0.60

2 years ago

0.0.61

2 years ago

0.0.59

2 years ago

0.0.57

2 years ago

0.0.56

2 years ago

0.0.55

2 years ago

0.0.54

2 years ago

0.0.53

2 years ago

0.0.52

3 years ago

0.0.51

3 years ago

0.0.50

3 years ago

0.0.49

3 years ago

0.0.48

3 years ago

0.0.47

3 years ago

0.0.46

3 years ago

0.0.45

3 years ago

0.0.44

3 years ago

0.0.43

3 years ago

0.0.42

3 years ago

0.0.41

3 years ago

0.0.40

3 years ago

0.0.39

3 years ago

0.0.38

3 years ago

0.0.37

3 years ago

0.0.36

3 years ago

0.0.35

3 years ago

0.0.34

3 years ago

0.0.33

3 years ago

0.0.32

3 years ago

0.0.31

3 years ago

0.0.29

3 years ago

0.0.28

3 years ago

0.0.27

3 years ago

0.0.26

3 years ago

0.0.25

3 years ago

0.0.24

3 years ago

0.0.23

3 years ago

0.0.22

3 years ago

0.0.21

3 years ago

0.0.19

3 years ago

0.0.18

3 years ago

0.0.17

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago