1.2.3 • Published 9 years ago

mongoose-adapter v1.2.3

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

9 years ago

1.2.2

9 years ago

1.2.0

9 years ago

1.1.8

9 years ago

1.1.6

9 years ago

1.1.5

9 years ago

1.1.4

9 years ago

1.1.2

9 years ago

1.1.0

10 years ago

1.0.18

10 years ago

1.0.16

10 years ago

1.0.14

10 years ago

1.0.13

10 years ago

1.0.12

10 years ago

1.0.11

10 years ago

1.0.10

10 years ago

1.0.9

10 years ago

1.0.8

10 years ago

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.0

10 years ago