MongoDB 3.6.0-rc0, the first release candidate of MongoDB 3.6, is out and is ready for testing. This is the culmination of the 3.5.x development series, and includes many exciting new features. Here are some of the highlights:
Fully Expressive Array Updates
This feature, the most voted by the MongoDB user community, enables developers to perform complex array manipulations against matching elements of an array, including elements embedded in nested arrays, all in a single update operation. Fully expressive array updates allows even more flexibility in data modeling.
More Expressive Query Language and Aggregation Pipeline
New aggregation operators and the ability to use aggregation expressions within the query language enable richer queries with less client-side code. This enhancement allows the referencing of other fields in the same document when executing comparison queries, as well as powerful expressions such as multiple JOIN conditions and uncorrelated subqueries. Other Aggregation Pipeline improvements include support for timezone-aware aggregations, conversion of objects to arrays and arrays to objects, and many more.
This feature moves the complexity of handling temporary system failures from the application to the database. Developers no longer need to implement custom, client-side code -- the MongoDB driver can automatically retry writes in the event of failure, while the MongoDB server enforces exactly-once processing semantics.
Change streams enable developers to build reactive, real-time, web, mobile, and IoT apps that can view, filter, and act on data changes as they occur in the database. Change Streams enable seamless data movement across distributed databases, making it simple to stream data changes and trigger actions wherever they are needed.
With tunable consistency, MongoDB affords developers precise control over routing queries across a distributed cluster, balancing data consistency guarantees with performance requirements. MongoDB 3.4 added linearizable reads, which were central to MongoDB passing Jepsen tests – some of the most stringent data safety and correctness tests in the database industry. MongoDB 3.6 introduces additional consistency controls: “Causal Consistency” and “Consistent Reads”.
Schema Validation via syntax derived from the proposed IETF JSON Schema standard extends the capabilities of document validation, originally introduced in MongoDB 3.2.
Wire protocol compression of network traffic between the client and the database, configured with the snappy or zLib algorithms, allows up to 80% savings in network bandwidth. This reduction brings major performance gains to busy network environments and reduces connectivity costs, especially in public cloud environments, or when connecting remote assets such as IoT devices and gateways.
Extending Security Controls and IP Whitelisting
MongoDB 3.6 will, by default, reject all network connections to the database unless explicitly configured to allow them by an administrator. Combined with the new IP Whitelisting feature, administrators can configure MongoDB to only accept external connections from approved IP addresses or CIDR ranges that have been explicitly added to the whitelist.
As always, please let us know of any issues.
-- The MongoDB Team