0.1.1 • Published 5 years ago

mongolize v0.1.1

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

mongolize

A mongo ORM base on mongoose, changed some method to look like sequelize.
一个基于 mongoose 制作的 mongo ORM, 更改了一些方法使其用起来更像 sequelize

Installation

npm install mongolize

Usage

// create
const Mongolize = require('mongolize');

const DB = new Mongolize({ database: 'test' });

const UserSchema = new Mongolize.Schema(
  {
    name: String,
    age: {
      type: Number,
      unique: true,
      index: true,
      default: 0,
      required: true,
    },
  },
  {
    timestamps: {
      createdAt: 'created_at',
      updatedAt: 'updated_at',
    },
    scopes: {
      adult: { age: { $gte: 18 } },
    },
  },
);

const UserModel = DB.model('user', UserSchema);

class User extends UserModel {
  static findAllAdults() {
    return this.findAll({ age: { $gte: 18 } });
  }

  get nameAndAge() {
    return `${this.name}&${this.age}`;
  }
}

async function main() {
  await User.truncate();

  const user = await User.create({ name: 'Tom', age: 18 });
  await user.update({ age: 20 }); // in practice, updateOne by {_id: user.id}
  await user.sync(['name']); // sync fields from DB
  
  // const users = await User.scope('adult').find(); // deprecated
  const users = await User.findAllAdults(); // recommended
  // ...
  
  DB.close();
}

main();

more example and test case

0.1.1

5 years ago

0.1.0

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago