我只是想知道为什么mongoose模式定义中不允许这样的事情:
var NameSchema = new mongoose.Schema({
first: {type: String, trim: true },
last: {type: String, trim: true }
});
var UserSchema = new mongoose.Schema({
name: NameSchema, // this line causes an error
age: {type: Number}
});
这似乎是一个设计决定,我只是想知道我是否可以解释为什么它不受支持
谢谢!
答案 0 :(得分:0)
您可以使用此方法嵌套架构:
name: [{ some: "props" } ]
或
name: [NameSchema]
直接提供模式定义(不使用“type:...”)的问题是,Mongoose无法区分选项对象和模式强>对象。 Mongoose会认为 NameSchema 实际上是一个选项对象(包含类型,修剪等选项......)。