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