Today we’re announcing the release of MongoDB 3.6, the latest milestone in our efforts to give developers the most productive general-purpose data management systems for modern applications. 3.6 makes it easier than ever to work with data in the most natural, efficient, and frictionless way possible.
Allowing developers to persist rich, nested data without flattening it out is one of MongoDB’s defining strengths. Documents can model any kind of data: key value, graph, and relational data sets are as much at home in documents as heterogeneous, nested structures are. With MongoDB Server 3.6, we’re making the query language much more powerful, with new array update operators that allow you to specify in-place updates to specific, matching array items, at any depth of nesting. Extensions to the $lookup aggregation stage now allow uncorrelated subqueries and multiple matching conditions, so referencing and joining documents in complex combinations can be handled in the database.
Modern applications need to respond instantaneously to changes, providing notifications to their users and interfaces that update live. To enable this, MongoDB 3.6 introduces Change Streams, which applications can use to get real-time notification of updates to collection data. Just a few lines of code yield a tailable cursor that continuously delivers notifications on updates to the watched collection.
A key characteristic of robust systems is that they handle network outages gracefully, but the defensive coding to handle them can represent a significant burden on developers. MongoDB 3.6 alleviates that burden with Retryable Writes, a new feature ensuring that writes are performed exactly once, even in the face of outages.
MongoDB 3.6 also concludes our march to uniformly secure defaults, with localhost only binding implemented directly in the core server. Since 2.6.0, this behavior has been the default configuration in the most popular packaged versions of MongoDB, but the server itself did not default to localhost only binding, because many customer infrastructures use border security and relied on the previously permissive behavior. As of this release, MongoDB Server itself will default to refusing all connections unless they are from a whitelisted IP.
The flexibility of documents is fully compatible with data validation, and MongoDB 3.6 improves on its previous capabilities with the introduction of JSON Schema. Using JSON Schema, you can specify (in JSON), on a per-collection basis, exactly what qualifies as a valid document, such as the types a field can have, whether it is required, and if a document permits fields not listed in the spec. With MongoDB 3.6, schema isn’t a straightjacket, it’s framework of validation you can tune to exactly the degree you need.
MongoDB Atlas has seen an incredible collection of improvements in 3.6. Cross-Region Clusters provide a whole new level of high-availability at the click of a button, whether you run Atlas on AWS, Google Cloud Platform, or Azure. We’ve also introduced two new instance classes, M2 and M5. These low-cost, shared tenancy instances bridge the gap between the free tier and the fully dedicated tiers, and are perfect for the development phase of a project between toy and production.
On the operations side, Atlas and Ops Manager have both gained a Data Explorer for quickly digging into the data in your database, and a Performance Advisor, which analyzes the queries running in your cluster and finds opportunities for improvement, like missing indexes to add.
The BI Connector, introduced last year, has been completely re-written for MongoDB 3.6 making it run much faster and easier to manage. The BI connector 2.0 is much better at translating SQL queries into MongoDB’s native aggregation framework, so it can push much more work directly down to MongoDB, instead of having to do it itself in memory.
With over a hundred new and updated features, MongoDB 3.6 is our biggest release yet, and we’re incredibly excited to get it into your hands and see what amazing things you do with it.
About the Author
Eliot Horowitz is the CTO and Co-Founder of MongoDB. He wrote the core code base for MongoDB starting in 2007, and subsequently built the engineering and product teams. Today, Eliot oversees those teams, and continues to drive technology innovations at MongoDB. Prior to MongoDB, Eliot co-founded and built ShopWiki, a groundbreaking online retail search engine. He built its technology, it’s team, and presided over its private sale in 2010. Before that, Eliot was a software developer in the R&D group at DoubleClick.
Eliot is on the board of the NY Tech Talent Pipeline. In 2006, he was selected as one of BusinessWeek’s Top 25 Entrepreneurs Under Age 25, and in 2015 was named to the Business Insider “Under 35 and Crushing it” list. He was also recently named to Crain’s NY Business 40 Under 40 Class of 2017 list. Eliot received a B.S. in Computer Science from Brown University.