mongoose-adapter
TypeScript icon, indicating that this package has built-in type declarations

1.2.3 • Public • Published

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 {
  _idstring;
  namestring;
  agenumber;
  birthdayDate;
}
 
 

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

Readme

Keywords

Package Sidebar

Install

npm i mongoose-adapter

Weekly Downloads

1

Version

1.2.3

License

MIT

Last publish

Collaborators

  • bibbychung