0.2.13 • Published 6 months ago

@joktec/mongo v0.2.13

Weekly downloads
-
License
MIT
Repository
github
Last release
6 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

12 months ago

0.0.226

12 months ago

0.0.225

1 year ago

0.0.224

1 year ago

0.0.229

12 months ago

0.0.228

12 months ago

0.0.223

1 year ago

0.0.222

1 year ago

0.2.13

6 months ago

0.2.12

6 months ago

0.2.11

6 months ago

0.2.10

6 months ago

0.0.238

11 months ago

0.0.237

11 months ago

0.0.236

11 months ago

0.0.235

11 months ago

0.0.239

9 months ago

0.0.230

12 months ago

0.0.234

12 months ago

0.0.233

12 months ago

0.0.232

12 months ago

0.0.231

12 months ago

0.1.0

9 months ago

0.1.2

8 months ago

0.1.1

9 months ago

0.1.4

8 months ago

0.1.3

8 months ago

0.1.6

7 months ago

0.1.5

8 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.2.7

7 months ago

0.2.6

7 months ago

0.2.9

6 months ago

0.2.8

6 months ago

0.2.3

7 months ago

0.2.2

7 months ago

0.2.5

7 months ago

0.2.4

7 months ago

0.0.221

1 year ago

0.0.220

1 year 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

2 years ago

0.0.148

2 years ago

0.0.147

2 years ago

0.0.146

2 years 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

3 years ago

0.0.81

3 years ago

0.0.82

2 years ago

0.0.83

2 years ago

0.0.73

3 years ago

0.0.74

3 years ago

0.0.75

3 years ago

0.0.76

3 years ago

0.0.77

3 years ago

0.0.79

3 years ago

0.0.70

3 years ago

0.0.71

3 years ago

0.0.72

3 years ago

0.0.62

3 years ago

0.0.64

3 years ago

0.0.65

3 years ago

0.0.66

3 years ago

0.0.67

3 years ago

0.0.68

3 years ago

0.0.60

3 years ago

0.0.61

3 years ago

0.0.59

3 years ago

0.0.57

3 years ago

0.0.56

3 years ago

0.0.55

3 years ago

0.0.54

3 years ago

0.0.53

3 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