NestJS - 使用mongoose

时间:2018-05-30 16:24:04

标签: mongodb mongoose enums nestjs

我正在尝试创建一个类似的Schema结构,

import  *  as  mongoose  from  'mongoose';
import  *  as  Stop  from  'stop-model';
    export  const  RouteSchema  =  new  mongoose.Schema({
    _id:  String,
    stop: [Stop],
    type: { type:  String, enum: ['INBOUND', 'OUTBOUND'] }
    }, {
    versionKey:  false,
    timestamps: { createdAt:  'createTime', updatedAt:  'updateTime' }
});

其中停止模型是接口,

import { Document } from  'mongoose';
export  interface  Stop  extends  Document {
    _id:  String,
    stopName:  String,
    type:  StopType,
    createTime:  number,
    updateTime:  number
}

export  enum  StopType {
    PARKING=  'PARKING',
    WAYPOINT  =  'WAYPOINT',
    STOP  =  'STOP'
}

但是在跑步时我得到以下错误

  

TypeError:PARKING处的未定义类型StopType.PARKING你做过   尝试嵌套Schemas?您只能使用refs或数组进行嵌套。

我的目标是在Stops集合中添加Routes列表。

我也有StopSchema这样的定义,

import  *  as  mongoose  from  'mongoose';

export  const  StopSchema  =  new  mongoose.Schema({
    _id:  String,
    stopName:  String,
    type: { type:  String, enum: ['PARKING', 'WAYPOINT', 'STOP'] }
    }, {
    versionKey:  false,
    timestamps: { createdAt:  'createTime', updatedAt:  'updateTime' }
});

我不确定如何在StopSchema内使用RouteSchema作为参考。 (这个答案就行Referencing another schema in Mongoose,但是用NestJS方式)。

1 个答案:

答案 0 :(得分:0)

在mongoose中,要引用模式中的其他模式,您必须使用<input type="number" ng-model="size" name="size" min="0" max="10" integer /> 所以在你的情况下,代码看起来像这样:

Schema.Types.ObjectId

让我知道它是否有帮助;)