What's new in MongoDB?

New features in the pipeline for the NoSQL database

MongoDB was designed as a general purpose database that's easy to pick up by developers and, each year, the company adds a number of new features to the popular NoSQL database.

Indeed, it is probably the most widely used NoSQL database around today, although this is hard to verify since it is open source and free to download, like its main competitors Apache Cassandra, Couchbase and Riak.

The regular upgrades to the database have recently focused on bolstering MongoDB's security and audit capabilities to make it more enterprise ready. But a number of other new features were announced at MongoDB World 2016, intended to boost its credentials as a capable all-rounder by encroaching on some of its rivals' specialisms, such as graph capabilities and faceted search.

1. Atlas
It will come as no surprise to anyone familiar with enterprise technology that the use of public cloud services such as Amazon AWS and Microsoft Azure are on the rise. Both vendors reported cloud revenue increases of at least 70 per cent last year.

It is also no surprise that cloud services are of particular interest to organisations that need to process data at scale, given the volumes of data typically processed by companies looking at NoSQL databases. What is a surprise, perhaps, is that it took MongoDB so long to offer database as a service.

"Actually it's a journey we started a few years ago. A company our size [MongoDB employs about 600 people] can only do a few things at once. We're focused on writing a database, which is one of the hardest pieces of software you can write," vice president of strategy Kelly Stirman (pictured) told Computing.

Atlas is the latest step in a process that began with a cloud-based monitoring service. This was followed a couple of years later with a fully managed backup service and a little after that came automation for installation, upgrades, configuration changes and other management tasks.

"Atlas is built on those core components, and we've gone beyond them to simplify and optimise and take on the automation of the underlying infrastructure as well as MongoDB," said Stirman.

"With Atlas we've taken the storage, server, compute, network and security - the core building blocks - off the developers' plates as things to worry about. We've taken high availability and disaster recovery off their plates too."

MongoDB is already available 'as a service' from IBM, Rackspace and mLab, but Stirman believes that most people will prefer to buy direct, particularly if the price is right.

"We can differentiate in three key ways. One, we created the database and people will be happy to use the product from the company that writes it; two, we have more features, especially in high availability and disaster recovery; and three, we are aggressively priced, especially at scale," he said.

Atlas is available now on AWS with Azure and Google planned.

2. Compass
Compass is a GUI for MongoDB, a little like the MySQL/MariaDB front end PHPmyadmin. It samples the data intelligently and provides a visual representation of its structure. Users can also build and edit queries.

Compass is the most popular download from the MongoDB site with the exception of the database itself, Stirman said.

The company demonstrated a number of new features that will come to Compass shortly, including CRUD capabilities allowing users to update and delete data from the GUI, and geospatial visualisation displaying addresses and other such data on a map.

Another new development is the detection of sensitive data. "If your data has shapes or patterns that look like Social Security or credit card numbers we will flag it in the GUI," Stirman said.

Indexes and other metadata will also be displayed in Compass. "You can see what type of indexes you have and how much space they are taking up, and you can see how the database ran a particular query so you can check that it's optimal," he explained.

What's new in MongoDB?

New features in the pipeline for the NoSQL database

3. Graph operator
A graph database capability is scheduled to be added to MongoDB 3.4 this autumn. Graph databases are useful for analysing things like social networks and friend-of-a-friend relationships. They are also at home in the modelling and optimisation of complex physical networks, such as those operated by telcos or electricity grids.

"Graph is a really different way of thinking about the world," Stirman said, explaining that applications requiring simple graph capabilities will not need to rely on a dedicated graph database, such as Neo4J, in the next version of MongoDB.

"We still model the data as documents, but with Graph you represent the relationships between the entities in a special way and then this new operator can take advantage of that to be very efficient in the way you analyse the relationships."

4. Faceted navigation
Faceted navigation refers to the way that companies such as Amazon and eBay allow you to refine a search. So if you are shopping for a bicycle, for example, boxes in the side panel allow you to select frame and wheel size, colour and so on.

"Any e-commerce application uses faceted navigation, and there are tons of other apps that use it too," Stirman said. "So you shouldn't have to stand up an ElasticSearch cluster. You should just be able to do it in the database.

5. Sort by collation
Sorting items alphabetically in English is relatively straightforward, but in, say, Polish or Hungarian, where many accents are used, it becomes very difficult.

MongoDB's historical lack of support for sort by collation has led to the firm being accused on the user forums of Anglo-centric arrogance, but Stirman said that fixing the problem is no easy task.

"It's hard in a big complicated product because it touches everything," he said. But he promised non-English-speaking developers that the long wait will soon be over with support for collation in version 3.4.