MongoDB today released version 3.6 of its document database designed to make data easier for developers to work with.
“We’ve added a ton of features to the core of what we do, which is to make developers more productive,” said Eliot Horowitz, CTO and co-founder of MongoDB.
In version 3.2, rolled out two years ago, MongoDB introduced equi-join, the company’s equivalent of joins. Users could join two collections together using the lookup operator. But the lookup could only handle equi-joins. In version 3.6, users “can do any kind of join you want, internal or external,” Horowitz said, adding that users can do queries on subcollections, and complex analytics pulling data from multiple sources are now easily supported. “This will help people doing any sort of website to get data from different sources easier for developers to build.”
Horowitz said the new ability to do expressive updates in the aggregation pipeline was the most asked-for feature over the last six years. For instance, a document representing an order for an ecommerce store in MongoDB might contain many different line items. Horowitz explained if you want to give a 20 percent discount on the shopping cart, a user can easily issue a single operation to give the discount for every line item, instead of having to do each line item manually. Or the change can be applied to a subset of the data, such as offering the discount on every line that hasn’t shipped.
MongoDB’s Connector for BI is now embedded in MongoDB’s Ops Manager management tooling, Horowitz said.
Further changes include the ability to define schema in JSON that the database can enforce, and Horowitz noted that the schema can be flexible – “it can say things like ‘These fields have to be here,’ or you can add schema, or it can say, ‘No, there must be strict adherence to the schema.’ ”
New change streams enable developers building real-time applications to set up notifications. For instance, every time a new order is placed, they can notify the shipper. “It lets you listen to changes happening live in the database so you can react to the change downstream,” Horowitz said.
Retryable writes, another new feature in 3.6, works off MongoDB’s ability to scale and distribute geographically to handle availability in the event of a server crash. “While the server is crashing, it’s unclear whether certain operations failed or succeeded. You have to write code to handle that. With retryable writes, the drivers do it for you automatically.” The server guarantees the retry will only happen once, he added, so “developers don’t have to worry about availability. The application doesn’t have to handle failovers.” The reason for allowing only a single retry is that if the application is performing a function such as incrementing a counter, and the write is executed more than once, it could render the data incorrect, he explained.
Tighter security, further updates to the Ops Manager and improvements to the Atlas hosted database-as-a-service such as cross-region replication and verifications have also been implemented, according to Horowitz.
The company has written a white paper explaining in detail what’s new in version 3.6. The update will be available early next month, according to the company.