« Back to Blog
BLOG POST

MongoDB 3.6 is now available on ObjectRocket

Antonios Giannopoulos

Today, we are happy to announce that MongoDB version 3.6 has passed our tests and is generally available on the ObjectRocket platform.

What’s New in MongoDB 3.6?

You can get the full list of what is available in the MongoDB 3.6 release notes. Here are some of the updates and changes we wanted to highlight:

Change streams

Tailing MongoDB’s oplog, is a popular feature with many uses, such as real-time notifications of all the changes to your database. (A tailable cursor is conceptually the same as the Unix “tail -f” command.)

If your application requires tailing the oplog, we have some good news! You no longer need to use tailable cursors to connect to each and every shard. Instead, you can use the watch() command to use some of the aggregation framework operators when streaming the oplog. Check our Percona Live 2018 presentation about change streams for more information.

WiredTiger

MongoDB 3.6 comes with WiredTiger storage engine version 3.0. This version of the WiredTiger engine includes various performance enhancements. One enhancement we’re particularly excited about is faster in-place updates for large documents.

Client sessions

Client sessions created for applications that require causal consistency are now better supported. If an operation logically depends on a preceding operation, there is a causal relationship between the operations. Read more about causal consistency.

Retryable writes

Retryable writes allow MongoDB drivers to automatically retry certain write operations a single time if they encounter network errors, or if they can’t find a healthy primary in the replica sets or sharded cluster. (Note that retryable writes are not supported in the MMAPv1 storage engine. You must use WiredTiger for this feature.) Read more about retryable writes.

Bug fixes

As every new version, 3.6 fixes bugs that aren’t backported. Put simply, this means that some bugs affecting older versions are fixed in 3.6 but never backported for different reasons in previous versions, like 3.4 and 3.2.

General enhancements

Aggregation

The $lookup operator adds support for specifying multiple join conditions as well as uncorrelated subqueries by allowing variable specification and pipeline execution on the joined collection.

New operators include:

  • $arrayToObject
  • $objectToArray
  • $mergeObjects
  • $dateFromString
  • $dateFromParts
  • $dateToParts

Array update operator (arrayFilters)

On the update and findandmodify commands, you may specify which elements to modify in an array field. Learn more.

JSON schema operator ($jsonSchema)

This operator matches documents that validate against the given JSON schema. Learn more.

Wire protocol and compression

The new wire protocol opcode called OP_MSG allows network compression for communication among mongod and mongos drivers.

Compatibility changes

If you’re upgrading to 3.6, we highly recommend you verify the following first:

What about MongoDB 4.0?

MongoDB released 4.0.0 during MongoDB World a few days ago. At ObjectRocket, we always run extensive tests before offering a major version upgrade on our platform. We’re currently evaluating 4.0’s stability and production readiness. We’ll post an update as soon as it’s available to ObjectRocket customers.

Learn more about ObjectRocket for MongoDB >

What happens next?

Set up a call with our support team and we’ll put an upgrade plan in place that fits your needs. We can help you get ahead of potential problems, avoid unplanned maintenance, and help you figure out development updates, driver settings, and/or set up maintenance windows.

Want to spin up a MongoDB 3.6 instance today? Head to the app and get started.

Keep in the know!

Subscribe to our emails and we’ll let you know what’s going on at ObjectRocket. We hate spam and make it easy to unsubscribe.