应用设计模式
模式设计模式是针对应用程序的访问模式优化数据模型的方法。 它们可提高应用程序性能并降低模式复杂性。 模式设计模式会影响数据的存储方式以及返回到应用程序的数据。
有关模式设计模式和示例的列表,请参阅 使用模式构建MongoDB Blog系列。
关于此任务
在实施模式设计模式之前,请考虑您要解决的问题。 每种模式设计模式都有不同的使用案例,以及数据一致性、性能和复杂性方面的权衡。 例如,某些模式设计模式可提高写入性能,而其他模式则可提高读取性能。
在不了解应用程序及其所需数据的情况下实现模式,可能会降低应用程序性能,并给模式设计带来不必要的复杂化。
例子
考虑一家电影院使用的以下示例模式:
该模式包含一个
movie
集合和一个theater
集合。 该模式使用子集模式将movie
集合中的信息子集复制到theater
集合中。 子集模式可减小返回到应用程序的文档大小并提高读取性能。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 } ] } ] )