猫鼬:这是子文档的好用例吗?

时间:2018-06-24 23:48:38

标签: mongoose

我们正在考虑构建一个自定义CMS,以使用一组预定义的元素来创建文章。可以将元素描述为具有type字段和一些适合此类型的字段的对象,例如:

{
  type: 'header1',
  text: 'Header'
}

{
  type: 'image',
  url: 'https://foo.com/bar.jpg'
}

{
  type: 'blockquote',
  text: 'Lorem ipsum...',
  attribution: 'Joe Smith'
}

,依此类推。这些元素的数组将构成文章的内容,以便我们获得如下结构:

{
  id: 'blah',
  permalink: 'https://foo.com/articles/blah
  contents: [
    header1
    subheader
    paragraph
    blockquote
    image
    ...etc
  ]
}

稍后将呈现为类似的内容:

enter image description here

所以我的问题是:鉴于猫鼬的contents字段是混合类型对象的数组,如何最好地用Mongoose建模Article对象?在这种情况下,使用子文档和区分符的方法是否有意义?它甚至可以工作(如果这样做会很好,因为那样就可以验证文章的内容了)?还是应该只将content字段声明为混合类型的数组,而不用担心单个元素的验证?

0 个答案:

没有答案