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

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

架构配置无效

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

const TeacherSchema = new Schema({

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

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

【问题讨论】:

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

标签: node.js mongodb mongoose


【解决方案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],
});

【讨论】:

  • 感谢您提供的答案,我试图寻找解决方案,但在父架构中定义架构时是否有任何问题
猜你喜欢
  • 2012-09-09
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2022-01-03
  • 1970-01-01
  • 2017-11-22
相关资源
最近更新 更多