带有猫鼬的循环引用

Kur*_*aki 5 javascript mongoose node.js

我有以下mongoose模式的代码

var EstacionSchema = new Schema({
    nombre          : {type : String, required: true, unique: true}
  , zona            : {type : String, required: true}
  , rutas           : [Ruta]
})

mongoose.model('Estacion', EstacionSchema)

var RutaSchema = new Schema({
    nombre          : {type : String, required: true, unique: true, uppercase: true}
  , estaciones      : [Estacion]
})

mongoose.model('Ruta', RutaSchema)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试它显示

ReferenceError: Ruta is not defined
Run Code Online (Sandbox Code Playgroud)

在mongoose中声明模型或处理多对多关系时,我不确定如何处理这个循环模式

Chr*_*ini 7

首先,您将引用不存在的变量.你可以通过RutaSchema或引用它mongoose.model('Ruta');.

我试试

var EstacionSchema = new Schema({
    nombre          : {type : String, required: true, unique: true}
  , zona            : {type : String, required: true}
})

mongoose.model('Estacion', EstacionSchema)

var RutaSchema = new Schema({
    nombre          : {type : String, required: true, unique: true, uppercase: true}
  , estaciones      : [EstacionSchema]  // or mongoose.Model('Estacion');
})

// Add reference to ruta
EstacionSchema.add({rutas: [RutaSchema]});
mongoose.model('Ruta', RutaSchema)
Run Code Online (Sandbox Code Playgroud)