模式设计模式是针对应用程序的访问模式优化数据模型的方法。 它们可提高应用程序性能并降低模式复杂性。 模式设计模式会影响数据的存储方式以及返回到应用程序的数据。
有关模式设计模式和示例的列表,请参阅 使用模式构建MongoDB Blog系列。
关于此任务
在实现模式设计模式之前,请考虑您要解决的问题。每种模式设计模式都有不同的使用案例,以及数据一致性、性能和复杂性方面的权衡。
在不了解应用程序及其所需数据的情况下实施模式可能会降低应用程序性能并导致不必要的复杂化。
例子
考虑一家电影院使用的以下示例模式:
该模式包含一个
movie集合和一个theater集合。该模式使用 子集模式将 集合中的信息子集复制到movietheater集合中。子集模式可减小返回到应用程序的文档大小并提高读取性能。movie集合包含一个total_views字段,该字段运行计算出的模式来计算客户在所有放映这部电影的电影院观看该电影的总次数。
movie Collection
db.movie.insertOne( { _id: 1, title: "Titanic", year: 1997, director: "James Cameron", runtime: 194, distributor: "Paramount Pictures", languages: [ "English" ], total_views: 3500 } )
Theater Collection
db.theater.insertMany( [ { name: "Downtown Cinemas", address: { street: "2212 Taylor Street", state: "NY" }, movies: [ { movie_id: 1, title: "Titanic", runtime: 194, views: 1500 } ] }, { name: "Midtown Theater", address: { street: "1232 5th Street", state: "NY" }, movies: [ { movie_id: 1, title: "Titanic", runtime: 194, views: 2000 } ] } ] )