Javascript 没有数组不能嵌套模式的原因是什么

Javascript 没有数组不能嵌套模式的原因是什么,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我只是想知道为什么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 a

我只是想知道为什么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}
});
这似乎是一个设计决定,我只是想知道我是否可以得到一个解释,为什么它不被支持


谢谢

可以使用以下方法嵌套架构:

name: [{ some: "props" } ]

直接给出模式定义(不使用“type:…”)的问题在于Mongoose无法区分选项对象和模式对象。Mongoose会认为NameSchema实际上是一个选项对象(包含类型、修剪等选项)

name: [NameSchema]