Author: Kyle BankerPublisher: Manning, 2012Pages: 280ISBN: 978-1935182870Aimed at: Application developers and DBAs wanting to use MongoDB from the ground upRating: 4.5Pros: Well written description of MongoDB and its advantagesCons: Tends to be over-enthusiasticReviewed by: Kay Ewbank

MongoDB is attracting a lot of attention. Does this book help developers get to grips with it?

MongoDB is a database that arouses great loyalty in its fans, who argue that its document-based data model works better in web applications than the traditional relational database. Kyle Banker works at 10gen, the company doing much of the development of the open-source MongoDB, so you’d expect him to be enthusiastic about MongoDB, and he is. He manages the MongoDB drivers for Ruby and C, which also has a bearing on the focus of this book.

Banker starts with a description on MongoDB and how it was developed, then a quick sales pitch to persuade you why it’s the solution to all your problems. This opening gives a really excellent introduction to MongoDB and the ideas behind it, and like the rest of the book the style of writing is clear and easy to read. There are chapters on working with the JavaScript shell and Ruby, and Banker develops a simple application for archiving and displaying tweets. The code is well written, and even if you don’t know Ruby you should be able to see what’s happening.

The next part of the book looks at the query language you work with in MongoDB and the document data model. This is the key to MongoDB, and you’re shown how to design the structures, create the documents and collections then work with them using the JavaScript shell. Alongside the explanations Banker develops a quite detailed e-commerce application with orders, customers, products, product reviews and categories. Banker shows where you might encounter problems and how to get around them.

Part Three is titled ‘MongoDB Mastery’, and looks at optimizing queries using indexes and the query optimizer. There’s a chapter on replication, and another on sharding. If you’ve not encountered sharding before, it’s another term for distributed databases, and MongoDB has automatic sharding to deal with large data sets. This is a useful chapter that takes you from a basic understanding of a shard through setting up a shard cluster, querying and indexing, the tricky task of shard keys, and working with shards in production. The book closes with a chapter on deployment and administration.

As a developer this is a good book for learning what MongoDB offers and how to use it. There is quite a lot of focus on Ruby which could be a disadvantage if you’d rather use an alternative language, and I’d have liked more examples, but overall I enjoyed this book. A useful read that’s well written.