Unpacking the Latest Features and Enhancements of MongoDB 7.0

Unpacking the Latest Features and Enhancements of MongoDB 7.0

Uncover the new capabilities of MongoDB 7.0, from performance improvements to enhancements

Introduction

The recent release of MongoDB 7.0 continues this tradition of innovation, introducing a series of enhancements that promise to revolutionize the way developers interact with their data.

Whether you are a seasoned MongoDB user or exploring it for the first time, the latest version offers exciting opportunities to take your development to the next level.

MongoDB has found its way into various industry applications, from large-scale e-commerce platforms, Stream Processing, Transactional, and Analytical to intricate Internet of Things (IoT) networks.

What's new in MongoDB 7.0?

New Aggregations Operators

MongoDB 7.0 brings two new aggregation operators $median and $percentile

  • $median: In a dataset, the median is the percentile value where 50% of the data falls at or below that value.

    We can use $median as an accumulator in the $group or $setWindowFields stage or as an aggregation expression in $project. The syntax for $median is:

      {
         $median: {
            input: <number>,
            method: <string>
         }
      }
      // The method must be 'approximate'
    
  • $percentile: In a dataset, a given percentile is a value where that percentage of the data falls at or below that value.

    We can use $percentile as an accumulator in the $group or $setWindowFields stage or as an aggregation expression in $project. The syntax for $percentile is:

      {
         $percentile: {
            input: <expression>,
            p: [ <expression1>, <expression2>, ... ],
            method: <string>
         }
      }
      // 'p' must evaluate to numeric values in the range 0.0 to 1.0 inclusive.
      // method must be 'approximate'
    

If you are looking to learn more about aggregations, you can check this article with sample datasets top 5 essential aggregations of MongoDB

Time Series Collections

Time series data is a sequence of data points, typically measures at successive points in time. for e.g. stock prices, temperature readings.

Time series collections in MongoDB are specifically designed to handle time series data. These are optimized for storing, querying, and processing timestamped data.

Time series collections were first introduced in version 5.0 of MongoDB and were having some limitations. The new MongoDB version 7.0 removes most of the time series limitations that were based on the $delete command.

Together with this, it also brings significant improvements to working with time series data which results in improved storage and query performance.

Compound Wildcard Indexes

MongoDB 7.0 supports creating wildcard indexes on a field or a set of fields. A compound wildcard index has one wildcard term and one or more additional index terms.

To create a wildcard index on a single field use the following syntax:

db.collection.createIndex( { "<field>.$**": <sortOrder> } )

To create a wildcard index on all fields excluding _id we can use the following syntax:

db.<collection>.createIndex( { "$**": <sortOrder> } )

Atlas Search Index Management

MongoDB's Atlas Search feature allows fine-grained text indexing and querying of data. This feature is only available on Atlas Clusters.

Atlas Search architecture

Atlas Search index is a data structure that categorizes data in an easily searchable format. In simple words, it is the mapping between terms and documents that contain these terms.

In MongoDB 7.0 we can now manage Atlas Search Indexes with mongosh methods and database commands.

Large Change Stream Events

Change Streams allow applications to access real-time data changes without complexity and risk of tailing the operation log i.e oplog.

Change Streams can be beneficial for reliable business systems architectures, informing downstream systems once data changes are durable.

In the new version of MongoDB, if you have change stream events larger than 16MB, we can use the new $changeStreamSplitLargeEvent stage to split events into smaller fragments.

Security

Starting in MongoDB 7.0, security capabilities have been strengthened by making general availability of Queryable Encryption.

Queryable Encryption offers end-to-end encryption of sensitive data while preserving the ability to run equality queries on that encrypted data.

Working Model of Queryable Encryption:

Gif displaying how queryable encryption works

The latest version of MongoDB Enterprise version supports OIDC i.e. OpenID connect authentication.

Upgrading to MongoDB 7.0

To upgrade a standalone from a previous major release, kindly follow the guidelines mentioned here

If you are trying to install the latest version of MongoDB, visit this link

At the time of writing this article, MongoDB 7.0 was not available via Docker Hub but should be available in near time.

Conclusion

With a full set of new features, security improvements, and other enhancements, MongoDB 7.0 is the perfect choice for organizations to take their development to the next level.

I hope you have learned something new as I did. If so, kindly like and share the article and also follow me to read more exciting articles. You can check my social links here.

References

MongoDB Docs

Release Notes for MongoDB

Queryable Encryption

General Acknowledgment

The images used to describe the Atlas Search Index and Model of Queryable Encryption have been taken from the MongoDB website and are owned by MongoDB Inc.