带有必需字段的嵌套可选对象的Mongoose模式

我想创build一个Mongoose Schema来validation下面的对象具有以下限制:

  • field2是可选的(0-1关系),
  • 如果field2存在,则需要field2.type(注意,字段的名称是“type”,用于types定义的mongoose保留字),
  • field2和基础对象必须在同一个文档中。

代码示例

{ field1: "data", field2: { type: "data", data: "data" } } 

提前致谢。

你可以参考这个答案 :

 { field1: "your data", field2: { type: { "your data" }, required:false } } 

所以一个例子是:

 { field1: String, field2: { type: { nestedField1:{type:String,required:true}, nestedField2:String }, required:false } } 

如果field2存在,则nestedField1将是必需的。

你可能意思是这样的:

 var Field2Schema = new mongoose.Schema({ type: { type: String, required: true }, data: String }); var MainSchema = new mongoose.Schema({ field1: String, field2: Field2Schema });