1

我只是想知道为什么猫鼬模式定义中不允许这样的事情:

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}
});

这似乎是一个设计决定,我只是想知道是否可以解释为什么不支持它

谢谢!

4

1 回答 1

0

您可以使用此方法嵌套架构:

name: [{ some: "props" } ]

或者

name: [NameSchema]

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

于 2013-02-25T05:00:36.263 回答