zoukankan      html  css  js  c++  java
  • @typegoose/typegoose. 使用技巧

    使用TypeScript类定义Mongoose模型

    typegoose 官方文档
    mongoose 操作文档

    安装

    npm install --save @typegoose/typegoose mongoose
    

    模型定义

    class Job {
      @prop()
      public title?: string;
    
      @prop()
      public position?: string;
    }
    
    class Car {
      @prop()
      public model?: string;
    }
    
    class User {
      @prop()
      public name?: string;
    
      @prop({ required: true })
      public age!: number; // This is a single Primitive
    
      @prop({ type: () => [String] })
      public preferences?: string[]; // This is a Primitive Array
    
      @prop()
      public mainJob?: Job; // This is a single SubDocument
    
      @prop({ type: () => Job })
      public jobs?: Job[]; // This is a SubDocument Array
    
      @prop({ ref: () => Car })
      public mainCar?: Ref<Car>; // This is a single Reference
    
      @prop({ ref: () => Car })
      public cars?: Ref<Car>[]; // This is a Reference Array
    }
    

    模型装饰器的使用

    • @prop() 允许传入的值
    declare function prop(options?: BasePropOptions | ArrayPropOptions | MapPropOptions | PropOptionsForNumber | PropOptionsForString | VirtualOptions, kind?: WhatIsIt): PropertyDecorator;
    
    • @modelOptions({options}) 装饰器的使用
      新增和更新数据的时候自动更新时间
    @modelOptions({
     schemaOptions:{
       timestamps: true,
     }
    })
    
  • 相关阅读:
    UNP(2rd)第二卷源码编译
    A very hard mathematic problem
    并查集~
    N皇后问题 深搜dfs
    实践中的一点小问题
    java环境配置 HelloWorld
    精确时间计算方法
    C语言关于文件操作
    字典树应用~
    并查集应用2
  • 原文地址:https://www.cnblogs.com/boyGdm/p/15744092.html
Copyright © 2011-2022 走看看