Mongoose 模式引用和未定义类型 'ObjectID'
Mongoose schema reference and undefined type 'ObjectID'
我正在尝试在我的模式之间建立一些关系,但我的解决方案存在一些问题。
这是我的设备架构:
var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Types.ObjectId, ref: 'User'}]
});
这里是房间架构:
var roomSchema = schema({
name : String,
image : String,
devices: [{type: mongoose.Types.ObjectId, ref: 'Device'}]
});
Mongoose 抛出错误
TypeError: Undefined type ObjectID
at room
Did you try nesting
Schemas? You can only nest using refs or arrays.
如果我将 room: {type: mongoose.Types.ObjectId, ref: 'Room'},
更改为 room: {type: Number, ref: 'Room'},
一切正常。你能解释一下为什么会这样吗?
mongoose.Types.ObjectId
是 ObjectId
构造函数,您要在模式定义中使用的是 mongoose.Schema.Types.ObjectId
(或 mongoose.Schema.ObjectId
)。
所以 deviceSchema
应该看起来像这样:
var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Schema.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Schema.Types.ObjectId, ref: 'User'}]
});
我正在尝试在我的模式之间建立一些关系,但我的解决方案存在一些问题。 这是我的设备架构:
var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Types.ObjectId, ref: 'User'}]
});
这里是房间架构:
var roomSchema = schema({
name : String,
image : String,
devices: [{type: mongoose.Types.ObjectId, ref: 'Device'}]
});
Mongoose 抛出错误
TypeError: Undefined type
ObjectID
atroom
Did you try nesting Schemas? You can only nest using refs or arrays.
如果我将 room: {type: mongoose.Types.ObjectId, ref: 'Room'},
更改为 room: {type: Number, ref: 'Room'},
一切正常。你能解释一下为什么会这样吗?
mongoose.Types.ObjectId
是 ObjectId
构造函数,您要在模式定义中使用的是 mongoose.Schema.Types.ObjectId
(或 mongoose.Schema.ObjectId
)。
所以 deviceSchema
应该看起来像这样:
var deviceSchema = schema({
name : String,
type : String,
room: {type: mongoose.Schema.Types.ObjectId, ref: 'Room'},
users: [{type:mongoose.Schema.Types.ObjectId, ref: 'User'}]
});