猫鼬模式中的嵌套地图

时间:2018-08-09 08:19:25

标签: mongodb mongoose mongoose-schema

我目前正在为我们的新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.

为什么我不能按预期嵌套地图?甚至有可能在猫鼬模式中投影这种“规范化数组”结构,如果是这样,怎么做?

感谢阅读!

1 个答案:

答案 0 :(得分:0)

我处在相同的情况下,它似乎对我有用:

const ChildSchema = new Schema({
  firstName: String,
});

const ParentSchema = new Schema({
  name: String,
  mapProperty: { type: Map, of: ChildSchema },
});

我也确实从ChildSchema上的猫鼬中触发了验证,因此似乎可以接受它。

希望有帮助。