What we learned at MongoDB world
Mike (@code__with__MikeH) and I represented dbKoda at the annual MongoDB World conference in Chicago in June. Here’s a wrap up of what we learned:
MongoDB adoption continues to grow strongly according to multiple reliable metrics. For instance, activity on stackoverflow.com continues to outpace other NoSQL systems while total cumulative downloads have continued to show exponential growth and have reached 30 million total.
The upcoming release of MongoDB implements incremental but important improvements to the core engine.
The $lookup in the aggregation framework allows for simple left outer joins to be performed in MongoDB. Enhancement to $lookup now allow the user to nest aggregation clauses within that lookup. This would allow (for instance) to join to a GROUP by – the sort of thing you might do in SQL with an in-line view
MongoDB added Document validation in 3.2, which allows simple rules to be defined to ensure that documents in a collection meet basic criteria. JSON schema support takes this one step further. JSON Schema allows virtually any condition to be specified so that you can if you want specify the exact shape of a document. Most of the time, we’ll limit these rules to certain “core” attributes but it still helps prevent MongoDB documents being corrupted by bad code.
MongoDB have put a lot of energy into the commercial Compass tool, a graphical data exploration management tool. The next release of Compass includes charting functions that let you visual data from MongoDB.
If there’s a failure of the network or the server during a write operation you might not be sure that the write has completed. In the case of a non-idempotent operation repeating the operation might leave the database in an incorrect state. In the next release of 3.4 you’ll be able to configure retryable writes which will automatically retry in the case of a network outage.
Under the hoods, the retryable writes mechanism takes advantage of more stateful server sessions.
Change streams allow an application to subscribe to changes in a collection. You could use this to implement a queuing system, perform replication or update another collection that contains aggregate or derived data.
MongoDB describes Stitch as Backend as a Service. It provides a REST-like interface to MongoDB data query and manipulation and integration with web services. At the demo CTO Elliot Horowitz showed a service that allowed an SMS gateway to perform inserts to MongoDB with just a few lines of code. Stitch doesn’t provide much in the way of complex application logic, so you couldn’t use it in place of application servers like Node.JS, but it could be used to build simple mobile interfaces and web service integrations directly to the database.
There were a lot of fun activities at the conference and some fantastic keynotes. My two favourite “fun” keynotes were:
- • Game Designer Jane McGonigal - Learn how Pokemon Go increased human lifespan by 3 million years.
- • Standup Mathemetician Matt Parker - Build a 4 bit calculator in dominos and tie your shoelaces one handed! (Starts about 1 hour 19 minutes into the video link)
MongoDB did not announce anything truly revolutionary at this conference. But they continue to build out the scalability and capabilities of the database. Customers at the conference showcased some very serious and flexible applications built with MongoDB. MongoDB’s lead in the NoSQL space continues unabated.