我目前正在为我们的新JSON格式创建合适的猫鼬模式。 它不是很复杂,但是我遇到了一个问题,即某些值不保存为数组,而是保存为“规范化数组”,如下所示:
answers: [{value: 5, string: "abc"}, {value: 4, string: "def"}]
will be:
answers: {
1: {id: 1, value: 5, string: "abc"},
2: {id: 2, value: 4, string: "def"}
}
对象本身也可以嵌套“规范化数组”。
现在,我尝试在顶级架构中使用像这样的猫鼬类型“ Map”:
answers: {
type: Map,
of: answer
}
其中“答案”是一个单独的猫鼬。 但是我得到的是:
TypeError: Undefined type `Map` at `answers`
Did you try nesting Schemas? You can only nest using refs or arrays.
为什么我不能按预期嵌套地图?甚至有可能在猫鼬模式中投影这种“规范化数组”结构,如果是这样,怎么做?
感谢阅读!
答案 0 :(得分:0)
我处在相同的情况下,它似乎对我有用:
const ChildSchema = new Schema({
firstName: String,
});
const ParentSchema = new Schema({
name: String,
mapProperty: { type: Map, of: ChildSchema },
});
我也确实从ChildSchema上的猫鼬中触发了验证,因此似乎可以接受它。
希望有帮助。