1.2.3 • Published 7 years ago

mongoose-adapter v1.2.3

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

mongoose-adapter Build Status npm

Make the mongoose easy to use.

Install

Install the components

$ npm install mongoose-adapter mockgoose mongoose --save

Quick Start

You can use TypeScirpt or JavaScript. Up to you.

TypeScript

Implement the BaseRepository for your mongoose collections.

//myUnitOfWork.ts
import { UnitOfWorkBase } from "mongoose-adapter";
import { PersonRep } from './personRep';

export class MyUnitOfWork extends UnitOfWorkBase {

  constructor() {
    super();
  }

  reps = {
    personRep: new PersonRep(this),
  };

}

//personRep.ts
import * as mongoose from "mongoose";
import { UnitOfWorkBase, RepositoryBase } from "mongoose-adapter";

export class PersonRep extends RepositoryBase<IPerson> {

  constructor(unitOfWork: UnitOfWorkBase) {
    super(unitOfWork);
  }

  getCollectionName() {
    return 'Person';
  }

  getSchema(): mongoose.Schema {

    const userSchema = {
      _id: { type: String, index: { unique: true } },
      name: { type: String },
      age: { type: Number },
      birthday: { type: Date },
    };
    const s = new mongoose.Schema(userSchema);
    return s;

  }

}

export interface IPerson extends mongoose.Document {
  _id: string;
  name: string;
  age: number;
  birthday: Date;
}

Examples for CRUD

// ==== create data =====
let myDb = new UnitOfWork();

var entity = myDb.reps.personRep.createNewEntity();
entity._id = "1qaz2wsx";
entity.name = "Bibby Chung";
entity.age = 18;
entity.birthday = new Date("1990-04-01 13:20:30");
myDb.add(entity);

await myDb.saveChangeAsync();


//==== update data ====
let myDb = new UnitOfWork();

let data = await myDb.reps.personRep.getAll()
    .find({ _id: "1qaz2wsx" })
    .exec();

let entity = data[0];
entity.name = "Bibby Chung 1";
entity.age = 22;
entity.birthday = new Date("1995-08-08 13:20:30");
myDb.update(entity);

await myDb.saveChangeAsync();


//==== delete data ====
let myDb = new UnitOfWork();

let data = await myDb.reps.personRep.getAll()
    .find({ _id: "1qaz2wsx" })
    .exec();

for (let item of data) {
  myDb.remove(item);
}

await myDb.saveChangeAsync();


//==== get data ====
let myDb = new UnitOfWork();

let data = await myDb.reps.personRep.getAll()
    .find({ _id: "1qaz2wsx" })
    .exec();

JavaScript

(later..)

Todo

  • add the transacation
1.2.3

7 years ago

1.2.2

7 years ago

1.2.0

7 years ago

1.1.8

7 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.2

7 years ago

1.1.0

8 years ago

1.0.18

8 years ago

1.0.16

8 years ago

1.0.14

8 years ago

1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.0

8 years ago