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

0.7.2 • Public • Published

mongoose-model

Build Status NPM version Dependencies status

Installation

Install with npm:

npm install mongoose-model

Usage

import { def, Model, model, prop, Query, ref } from 'mongoose-model';
 
export interface IContact {
  kind: string;
  value: string;
}
 
@model
export class User extends Model {
  @prop age: number;
  @prop({
    kind: String,
    value: String,
  })
  contacts: IContact[];
  @prop createdAt: Date;
  @prop email: string;
  @def(false) isActive: boolean;
  @prop name: string;
 
  get displayName() {
    return `${this.name} <${this.email}>`;
  }
 
  static findByEmail(email: string): Query<User> {
    return this.findOne({ email });
  }
}
 
@model
export class Post extends Model {
  @prop body: string;
  @ref  creator: User;
  @prop title: string;
 
  static findByTitle(title: string): Query<Post> {
    return this.findOne({ title });
  }
}

Package Sidebar

Install

npm i mongoose-model

Weekly Downloads

41

Version

0.7.2

License

MIT

Unpacked Size

84.7 kB

Total Files

45

Last publish

Collaborators

  • megahertz