Very good breadth and depth -- 4.5 stars
This book covers MongoDB 2.0 and provides very useful recommendations on document- and system-design practices and patterns that application developers and administrators can adopt for their own work.
Part 2 provides tutorials on how to design, create, and manipulate document-oriented data models, with particular attention to achieving safety, flexibility, and efficiency. The tutorials use a data model revolving around Products, Product Categories, Users, Orders, and Product Reviews. The data model is sufficiently rich to facilitate deep-enough discussion of issues and concerns that could arise -- and how to handle them -- when building e-commerce, social media, and/or analytic applications around that data model. The three chapters comprising Part 2 provide a comprehensive introduction to MongoDB's CRUD (Create Read Update Delete) capabilities, and share many document design patterns that application developers can use in their own works.
Part 3 covers practices, tools, and utilities that administrators can use for securing, monitoring, and improving the availability and scalability of their MongoDB systems, as well as tips for developers on how to make their applications performant. The four chapters comprising Part 3 go into deep enough technical detail on how certain parts of MongoDB works under the hood to give both administrators and developers the necessary knowledge to help them make their MongoDB systems secure, available, and performant.
Overall, I thought the book is very well written and organized, and has very good breadth and depth. While there were a few minor editing slip-ups, they did not prove distracting to me. Part 1 failed to mention a few things that could have proved handy to novice developers, such as how to safely shut down a MongoDB Server -- would doing a Control - C be OK? The answer is YES, and this is actually mentioned later in the book. Another thing that might have made the book even more useful is providing more MAP-REDUCE code examples for data aggregation purposes. Currently, MongoDB does not provide many data aggregation functions available to relational database users, and while there is a plan to make such functions available in later releases, MongoDB users currently have to write custom code in the form of MAP-REDUCE functions themselves in many cases. The MAP-REDUCE discussion in the book is rather short, and the 2 code examples are probably inadequate for many developers who have such needs.