多态数据
MongoDB 使用灵活的数据模型,这意味着单个集合中的文档不需要具有相同的结构。多态数据是指单个集合中,文档字段或数据类型可能不同的数据。
通常,集合中的文档结构相似,但可能根据应用程序略有不同。要在一个集合中将相似的非相同文档分组,可以使用多态和继承模式设计。
这些模式设计可以通过根据查询访问模式存储数据来提高性能,而不是根据文档形状严格存储数据。
用例
场景 | 设计模式应用 |
---|---|
您的应用程序跟踪不同运动中的专业运动员。您的查询访问所有运动员,但为每位运动员存储的属性根据其运动类型而异。 | 使用多态模式将运动员分组到单个集合中。尽管文档形状不同,但仍然可以使用单个查询访问它们。 |
您的应用程序跟踪书店中的书籍。书籍可以以不同的形式存在:电子书、印刷版或有声书。所有书籍都共享以下字段: 标题 、作者 和类型 ,但根据其格式有不同的附加字段。 | 使用继承模式将书籍分组到单个集合中。每种书籍格式都是父实体 书籍 的子实体,它提供了所有格式的共享字段标题 、作者 和类型 。尽管子实体的附加字段不同,但父实体的共享字段允许它们被分组到单个集合中。 |