MongoDB模式验证外对象可选,但需要内部对象



我有mongodb模型

optionalRoot: {
        optionalA: {
          requiredForA1: { type: String, required: true },
          requiredForA1: { type: String, required: true }
        },
        optionalB: {
          requiredForB1: { type: String, required: true },
          requiredForB1: { type: String, required: true }
        },
}

甚至有可能在模式中表达这一点吗?本质上是optionalAoptionalB可能存在或可能不存在,但是如果这样做,它们应包含每个

requiredFor*

在您的情况下,我将要做的是在三个集合中打破架构。会这样:

OptionalRoot: {
   optionalA: [optionalAId],
   optionalB: [optionalBId]
}
OptionalA: {
    requiredForA1: {type: String, required: true}
    requiredForA2: {type: Number, required: true}
}
OptionalB : {
    requiredForB1: {type: String, required: true}
    requiredForB2: {type: Date, required: true}
}

希望我的答案有帮助。

最新更新