Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Announcing the Next Generation Drivers for MongoDB

DZone's Guide to

Announcing the Next Generation Drivers for MongoDB

These new MongoDB drivers conform to published specifications, which include server selection, discovery and monitoring, CRUD API, and authentication.

· Database Zone
Free Resource

Learn how our document data model can map directly to how you program your app, and native database features like secondary indexes, geospatial and text search give you full access to your data. Brought to you in partnership with MongoDB.

Originally Written by Andrew Erlichson

When developers get started with MongoDB, they are delighted to discover that it supports the programming languages they love. For as long as the database has been around, we’ve offered at least eight official drivers that help to make developers productive quickly. Moving in lockstep with the server to support all major changes, these drivers ensure that you’re always able to take advantage of the latest features in the database.

Over the years, each driver engineering team has designed its own approach to querying the database, providing fault tolerance, exposing database options, offering an asynchronous interface, and implementing dozens of other features. Each driver has also accumulated its fair share of technical debt, having been initially designed for a much simpler version of MongoDB.

Meanwhile, as MongoDB has proliferated and matured, the number of organizations that use more than one driver has increased. Although each driver strives to be idiomatic in the language it supports, there is little reason why the core CRUD API needs to vary across drivers, and after several years, there was some divergence.

We needed a fresh start, driven by more formal specifications and informed by all the learning we have collectively done since MongoDB was first introduced in 2009. We are excited to announce that in the next few weeks we will be rolling out new drivers for all languages that build on everything we've learned. Stay tuned for major releases from the Java, .NET, Python, Node.js, and Ruby teams. PHP and Perl will follow soon after. An updated C++ driver is also in development.

These new MongoDB drivers conform to published specifications.

  • Server Selection - Deciding which server to send database operations to in a MongoDB deployment.
  • Server Discovery and Monitoring - All the logic required to make a MongoDB application highly available.
  • CRUD API - The API for how we Create, Read, Update and Delete data from MongoDB.
  • Authentication - The rules for how to authenticate to MongoDB servers.

Let us know what you think!

As you are the developers using these drivers every day to access MongoDB, we both value and rely heavily on your input. You directly inform many of the choices made in the specifications. Please continue to give us feedback so we can make the best possible interface for you.

If you’d like to report an issue in a specific driver, please do so in the individual driver project in JIRA (e.g. JAVA, PYTHON). See a full list of our JIRA projects here.

If you’d like to make a feature request or report an issue common to all drivers, please do so in the DRIVERS project.

We look forward to your feedback on this latest release.

 

Discover when your data grows or your application performance demands increase, MongoDB Atlas allows you to scale out your deployment with an automated sharding process that ensures zero application downtime. Brought to you in partnership with MongoDB.

Topics:
nosql ,mongodb ,database ,drivers

Published at DZone with permission of Francesca Krihely, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}