Chapter 1. A database for the modern web

 

In this chapter

  • MongoDB’s history, design goals, and key features
  • A brief introduction to the shell and the drivers
  • Use cases and limitations

If you’ve built web applications in recent years, you’ve probably used a relational database as the primary data store, and it probably performed acceptably. Most developers are familiar with SQL, and most of us can appreciate the beauty of a well-normalized data model, the necessity of transactions, and the assurances provided by a durable storage engine. And even if we don’t like working with relational databases directly, a host of tools, from administrative consoles to object-relational mappers, helps alleviate any unwieldy complexity. Simply put, the relational database is mature and well known. So when a small but vocal cadre of developers starts advocating alternative data stores, questions about the viability and utility of these new technologies arise. Are these new data stores replacements for relational database systems? Who’s using them in production, and why? What are the trade-offs involved in moving to a nonrelational database? The answers to those questions rest on the answer to this one: why are developers interested in MongoDB?

1.1. Born in the cloud

1.2. MongoDB’s key features

1.3. MongoDB’s core server and tools

1.4. Why MongoDB?

1.5. Tips and limitations

1.6. Summary