Synopses & Reviews
Many businesses launch NoSQL databases without understanding the techniques for using their features most effectively. This book demonstrates the benefits of document embedding, polymorphic schemas, and other MongoDB patterns for tackling specific big data use cases, including:
- Operational intelligence: Perform real-time analytics of business data
- Ecommerce: Use MongoDB as a product catalog master or inventory management system
- Content management: Learn methods for storing content nodes, binary assets, and discussions
- Online advertising networks: Apply techniques for frequency capping ad impressions, and keyword targeting and bidding
- Social networking: Learn how to store a complex social graph, modeled after Google+
- Online gaming: Provide concurrent access to character and world data for a multiplayer role-playing game
Whether you're building the newest and hottest social media web site or developing an internal-use-only enterprise business intelligence application, scaling your data model has never been more important. Traditional relational databases, while familiar, present significant challenges and complications when trying to scale up to such "big data" needs. Into this world steps MongoDB, a leading NoSQL database, to address these scaling challenges while also simplifying the process of development.
However, in all the hype surrounding big data, many sites have launched their business on NoSQL databases without an understanding of the techniques necessary to effectively use the features of their chosen database. MongoDB Applied Design Patterns provides the much-needed connection between the features of MongoDB and the business problems that it is suited to solve. The book's focus on the practical aspects of the MongoDB implementation makes it an ideal purchase for developers charged with bringing MongoDB's scalability to bear on the particular problem you've been tasked to solve.
About the Author
Rick Copeland is the Principal Consultant and Founder at Arborian Consulting, a business focusing on MongoDB and Python custom development and training. Rick is a frequent speaker at MongoDB events, an avid MongoDB enthusiast, and is a charter member of 10gen's "Masters of MongoDB." In the non-MongoDB side of things, Rick is also a well-known Python developer and member of the Python Software Foundation, having contributed to a number of open-source projects and spoken at various evens and user groups.
Rick is also the author of Essential SQLAlchemy, a book published by O'Reilly that introduces the reader to the excellent SQLAlchemy Python database toolkit.
Table of Contents
Preface; Audience; Assumptions This Book Makes; Contents of This Book; Conventions Used in This Book; Using Code Examples; Safari® Books Online; How to Contact Us; Acknowledgments; Design Patterns; Chapter 1: To Embed or Reference; 1.1 Relational Data Modeling and Normalization; 1.2 MongoDB: Who Needs Normalization, Anyway?; 1.3 Conclusion; Chapter 2: Polymorphic Schemas; 2.1 Polymorphic Schemas to Support Object-Oriented Programming; 2.2 Polymorphic Schemas Enable Schema Evolution; 2.3 Polymorphic Schemas Support Semi-Structured Domain Data; 2.4 Conclusion; Chapter 3: Mimicking Transactional Behavior; 3.1 The Relational Approach to Consistency; 3.2 Compound Documents; 3.3 Using Complex Updates; 3.4 Optimistic Update with Compensation; 3.5 Conclusion; Use Cases; Chapter 4: Operational Intelligence; 4.1 Storing Log Data; 4.2 Pre-Aggregated Reports; 4.3 Hierarchical Aggregation; Chapter 5: Ecommerce; 5.1 Product Catalog; 5.2 Category Hierarchy; 5.3 Inventory Management; Chapter 6: Content Management Systems; 6.1 Metadata and Asset Management; 6.2 Storing Comments; Chapter 7: Online Advertising Networks; 7.1 Solution Overview; 7.2 Design 1: Basic Ad Serving; 7.3 Design 2: Adding Frequency Capping; 7.4 Design 3: Keyword Targeting; Chapter 8: Social Networking; 8.1 Solution Overview; 8.2 Schema Design; 8.3 Operations; 8.4 Sharding; Chapter 9: Online Gaming; 9.1 Solution Overview; 9.2 Schema Design; 9.3 Operations; 9.4 Sharding; Afterword; Where Do I Go from Here?; Index; Colophon;