如何制作一个包含猫鼬所需不同字段的数组?

Posted

技术标签:

【中文标题】如何制作一个包含猫鼬所需不同字段的数组?【英文标题】:How can I make an array with different fields required in mongoose? 【发布时间】:2019-10-27 22:33:35 【问题描述】:

我正在创建一个 RESTAPI,但是在编译 npm 时会抛出一条错误消息,说明

架构配置无效

我曾尝试在官方文档以及 *** 上寻找解决方案,但他们都没有回答我的问题。

const TeacherSchema = new Schema(

   WorkExperience:[
              startDate:String,
              endDate:String,
              companyName:String,
              postName:String,
              required:true
        ],
);

代码应该可以编译,但它抛出了一个错误

【问题讨论】:

此架构似乎无效,因为它将 required: true 声明为数组中的一个字段 - 但是您提供 true 作为值而不是架构类型。看看这个post,它应该会告诉你如何解决你的问题。 正如@StockOverflaw 评论的那样,您的错误是将required 定义为数组对象的第五个字段,而不是每个字段的属性(或必需的)。无论如何,请记住,根据需要定义字段只会影响在数组中插入对象时,但可以插入数组中没有项目的文档。 您可以阅读this以获得更清晰的了解 【参考方案1】:

您还可以为每个字段添加要求。我认为没有办法根据数组的需要添加验证。

const workExperienceDetails = new Schema(
  startDate:  type: String, required: true ,
  endDate:  type: String, required: true 
  companyName:  type: String, required: true 
  postName:  type: String, required: true 
);
const TeacherSchema = new Schema(
   workExperience:[workExperienceDetails],
);

【讨论】:

感谢您提供的答案,我试图寻找解决方案,但在父架构中定义架构时是否有任何问题

以上是关于如何制作一个包含猫鼬所需不同字段的数组?的主要内容,如果未能解决你的问题,请参考以下文章