> For the complete MongoDB documentation index, see www.mongodb.com/docs/llms.txt

<!--
Tab options on this page. Append to the .md URL to filter:
  ?tabs=<id,...>   select specific tabs (e.g. ?tabs=nodejs,shell)
  ?allTabs=true    include every tab
  (no param)       default: one tab per tabset

Available tabs:
  other tabs: python2, python3
-->

# Client Library Compatibility Tables

MongoDB provides client libraries for many popular languages and frameworks. These libraries connect your application to MongoDB Server. Frameworks add additional functionality, such as object-relational mapping, to the client libraries.

The compatibility tables on this page show compatibility between different versions of the client library, MongoDB Server, and the client library language or framework. You can use these tables to ensure your environment remains operational after an upgrade.

**Note: Minor Version Compatibility**

If a client library is compatible with a major version of MongoDB Server, it is also compatible with the minor and patch releases within that major version unless otherwise specified.

**Tip:**

To learn how to download the C driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/c/c-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the C driver and MongoDB Server:

| C Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 2.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.3 to 2.4 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1.28 to 2.2 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1.24 to 1.27 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1.22 to 1.23 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 1.19 to 1.21 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 1.18 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 1.17 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 1.15 to 1.16 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ |
| 1.11 to 1.14 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |

The 1.18 driver does not support snapshot reads on secondaries. For more information, see the [MongoDB Server version 5.0 release notes.](https://www.mongodb.com/docs/v5.0/release-notes/5.0/#snapshots)

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the C driver between 2.3 and 2.4 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the C driver, this includes version 2.5 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use C driver version 1.28 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 2.5 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All C driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## C Compatibility

This section shows compatibility between versions of the C driver and versions of C. A check mark (✓) in a cell means that the C driver version is fully compatible with the C version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between the C driver and the C language:

| C Driver Version | C17/C18 | C11 | C99 | C89 |
| --- | --- | --- | --- | --- |
| 1.24 to 2.5 | ✓ | ✓ | ✓ | |
| <= 1.23 |  | ✓ | ✓ | ✓ |

## Platform Compatibility

This section shows compatibility information about platforms and toolchains that the C driver supports.

### Operating Systems

We expect the following operating systems to be supported for use with the C driver:

| Operating System | Notes |
| --- | --- |
| Debian | Versions 11.0 and later |
| RHEL | Versions 7.0 and later. RHEL derivatives (such as CentOS, Rocky Linux, and AlmaLinux) of the same release version are supported. Fedora is also supported. |
| Ubuntu | Versions 20.04 and later. Ubuntu derivatives based on supported Ubuntu versions are also supported. |
| Arch Linux | |
| macOS | C driver versions 2.1 and earlier require macOS 11.0 or later.C driver versions 2.2 and later require macOS 14.0 or later. |
| Windows | Windows Server 2008 and later |

### Compilers

The following compilers are continually tested with the C driver:

| Compiler | Notes |
| --- | --- |
| Clang | Versions 3.7, 3.8, and 6.0. Newer versions are also supported, as well as the corresponding Apple Clang releases. |
| GNU Compiler Collection (GCC) | Versions 4.8, 5.4, 6.3, 7.5, 8.2, 8.3, 9.4, and 10.2. The MinGW-w64 GCC is also tested and supported. |
| Microsoft Visual C++ (MSVC) | Tested with 15.x (Visual Studio 2017). Newer MSVC versions are supported but not yet tested. |

### Architectures

The following CPU architectures are continually tested with the C driver:

| Architecture | Notes |
| --- | --- |
| x86 (32-bit) | Tested only on Windows |
| x86_64 (64-bit x86) | Tested on Linux, macOS, and Windows |
| ARM / aarch64 | Tested on macOS and Linux |
| Power8 (ppc64le) | Tested only on Linux |
| zSeries (s390x) | Tested only on Linux |

### Additional Platforms

Other platforms and toolchains are not tested, but we expect similar versions of the preceding platforms to work. If you encounter a platform or toolchain that you expect to work and find that it does not, please open a Jira issue describing the problem, or open a [GitHub Pull Request](https://github.com/mongodb/mongo-c-driver/pulls) to fix it.

**Important:**

Simple pull requests to fix unsupported platforms are welcome, but will be considered on a case-by-case basis. Merging a pull request to fix libraries on an unsupported platform does not imply full support for that platform.

**Tip:**

To learn how to download the C++ driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the C++ driver and MongoDB Server:

| C++ Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 4.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4.3 to 4.5 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4.2 |  | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.11 to 4.1 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.8 to 3.10 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.7 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 3.6 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 3.4 to 3.5 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the C++ driver between 4.3 and 4.5 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the C++ driver, this includes version 4.6 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use C++ driver version 3.11 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 4.6 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All C++ driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## C++ Compatibility

This section shows compatibility between versions of the C++ driver and versions of C++. A check mark (✓) in a cell means that the C++ driver version is fully compatible with the C++ version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between the C++ and MongoDB Server:

| C++ Driver Version | C++23 | C++20 | C++17 | C++14 | C++11 |
| --- | --- | --- | --- | --- | --- |
| 3.8 to 4.6 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.0 to 3.7 |  |  | ✓ | ✓ | ✓ |

## libmongoc Compatibility

The following table shows the minimum libmongoc version for each version of the C++ driver:

| C++ Driver Version | Minimum libmongoc Version |
| --- | --- |
| 4.6.x | 2.5.6 |
| 4.5.x | 2.3.3 |
| 4.4.x | 2.3.1 |
| 4.3.x | 2.3.0 |
| 4.2.x | 2.2.3 |
| 4.1.x | 2.0.0 |
| 4.0.x | 1.29.0 |
| 3.11.x | 1.28.0 |
| 3.9.x and 3.10.x | 1.25.0 |
| 3.8.x | 1.24.0 |
| 3.7.x | 1.22.1 |
| 3.6.x | 1.17.0 |
| 3.5.x | 1.15.0 |
| 3.4.x | 1.13.0 |
| 3.3.x | 1.10.0 |
| 3.2.x | 1.9.2 |
| 3.1.4 | 1.7.0 |
| 3.1.0 to 3.1.3 | 1.5.0 |
| 3.0.1 to 3.0.3 | 1.3.4 |
| 3.0.0 | 1.3.1 |

## Compiler Compatibility

The C++ driver supports the following compilers:

- [GCC](https://gcc.gnu.org/) v8.1 or later

- [Clang](https://clang.llvm.org/) v3.8 or later

- [Xcode](https://developer.apple.com/xcode/cpp) v13.1 or later

- [Visual Studio](https://visualstudio.microsoft.com/vs/features/cplusplus/) 2017 version 15.9 or later

**Note:**

The preceding compiler versions are the minimum versions required to build the C++ driver from source. These are not requirements to use prebuilt headers and libraries.

**Tip:**

To learn how to download the .NET/C# driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/csharp/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the .NET/C# driver and MongoDB Server:

| .NET/C# Driver Version | MongoDB 9.0 | MongoDB 8.2 to 8.3 | MongoDB 8.1 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 3.10 to 3.12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.8 to 3.9 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.29 to 3.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.20 to 2.28 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.16 to 2.19 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 2.15 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.7 to 2.14 |  | ✗ | ✗ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 2.0 to 2.6 |  | ✗ | ✗ |  |  |  |  |  | ✓ |

These driver versions are not compatible with MongoDB Server 8.1 or later because of an authentication issue.

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the .NET/C# driver between 3.8 and 3.9 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the .NET/C# driver, this includes version 3.10 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use .NET/C# driver version 2.29 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 3.10 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All .NET/C# driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## C# Compatibility

This section shows compatibility between versions of the .NET/C# driver and versions of .NET or the .NET Framework. A check mark (✓) in a cell means that the .NET/C# driver version is fully compatible with the .NET or the .NET Framework version. A blank cell means that the combination is incompatible or untested.

### .NET

The following table shows compatibility between the .NET/C# driver and .NET:

| .NET/C# Driver Version | .NET 10 | .NET 8 | .NET 7 | .NET 6 | .NET 5 | .NET Core 3.X | .NET Core 2.X |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 3.5.2 to 3.12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.0 to 3.5.1 |  | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 2.3 to 2.30 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

### .NET Framework

The following table shows compatibility between the .NET/C# driver and the .NET Framework:

| .NET/C# Driver Version | .NET 4.8 | .NET 4.7 | .NET 4.6 |
| --- | --- | --- | --- |
| 2.14 to 3.12 | ✓ | ✓ | |
| 2.0 to 2.13 | ✓ | ✓ | ✓ |

Driver versions 2.14 and later require .NET Framework 4.7.2 or later.

**Tip:**

To learn how to download the Entity Framework Core Provider and create your first application, see [Get Started.](https://www.mongodb.com/docs/entity-framework/current/quick-start/)

## Entity Framework Core Compatibility

The major version of the MongoDB Entity Framework Core Provider must match the major version of Entity Framework Core that your application uses. For example, if your application uses Entity Framework Core 8.x, you must use version 8.x of the MongoDB Entity Framework Core Provider.

## MongoDB Server Compatibility

The Entity Framework Core Provider requires MongoDB Server 5.0 or later.

## .NET Compatibility

The Entity Framework 8.x and 9.x providers require .NET 8.0 or later.

The Entity Framework 10.x provider require .NET 10.0 or later.

**Tip:**

To learn how to download the Go driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/go/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Go driver and MongoDB Server:

| Go Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.1 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2.9 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 2.6 to 2.8 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.1 to 2.5 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1.12 to 2.0 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 1.11 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |

Go driver v1.17 and v2.0 are partially compatible with MongoDB Server 8.0 but do not support client bulk write.

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Go driver between 2.6 and 2.8 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Go driver, this includes version 2.9 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Go driver version 2.1 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 2.9 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Go driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Go Compatibility

The Go driver requires Go 1.25 or later.

**Tip:**

To learn how to download the Java Sync driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/java/sync/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Java driver and MongoDB Server:

| Java Driver Version | MongoDB 9.0 | MongoDB 8.3 | MongoDB 8.1 to 8.2 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 5.12 to 5.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.9 to 5.11 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.8 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.2 to 5.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.10 to 5.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.8 to 4.9 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 4.7 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 4.3 to 4.6 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 4.1 to 4.2 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 4.0 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |
| 3.11 to 3.12 |  | ✗ | ✗ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |
| 3.8 to 3.10 |  | ✗ | ✗ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |

These driver versions are not compatible with MongoDB 8.1 or later because of an authentication issue. To learn more, see [Upgrade Driver Versions.](https://www.mongodb.com/docs/drivers/java/sync/current/reference/upgrade/#std-label-java-server-8.1-incompatibility)

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Java driver between 5.9 and 5.11 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Java driver, this includes version 5.12 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Java driver version 5.2 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 5.12 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Java driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Java Compatibility

This section shows compatibility between versions of the Java driver and versions of Java. A check mark (✓) in a cell means that the Java driver version is fully compatible with the Java version. A blank cell means that the combination is incompatible or untested.

Starting with Java 8, the table lists only long-term support (LTS) Java versions. The driver supports all versions later than Java 8 through Java Virtual Machine (JVM) backwards compatibility.

| Java Driver Version | Java 21 | Java 17 | Java 11 | Java 8 | Java 7 | Java 6 | Java 5 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 4.11 to 5.13 | ✓ | ✓ | ✓ | ✓ |  |  | |
| 4.5 to 4.10 | ✓ | ✓ | ✓ | ✓ |  |  | |
| 4.4 |  | ✓ | ✓ | ✓ |  |  | |
| 4.0 to 4.3 |  |  | ✓ | ✓ |  |  | |
| 3.8 to 3.12 |  |  | ✓ | ✓ | ✓ | ✓ | |

This driver version is not compatible with virtual threads.

**Tip:**

To learn how to download the Java Reactive Streams driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/java/reactive-streams-driver/current/getting-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Java Reactive Streams driver and MongoDB Server:

| Java Reactive Streams Driver Version | MongoDB 9.0 | MongoDB 8.3 | MongoDB 8.1 to 8.2 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 |
| --- | --- | --- | --- | --- | --- | --- |
| 5.12 to 5.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.9 to 5.11 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.8 |  | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.2 to 5.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 4.10 to 5.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 4.7 to 4.9 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ |
| 4.0 to 4.6 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ |
| 3.11 to 3.12 |  | ✗ | ✗ | ⊛ | ⊛ | ⊛ |

These driver versions are not compatible with MongoDB 8.1 or later because of an authentication issue. To learn more, see [Upgrade Driver Versions.](https://www.mongodb.com/docs/languages/java/reactive-streams-driver/current/upgrade/#server-version-8.1-support-changes)

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Java Reactive Streams driver between 5.9 and 5.11 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Java Reactive Streams driver, this includes version 5.12 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Java Reactive Streams driver version 5.2 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 5.12 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Java Reactive Streams driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Java Compatibility

This section shows compatibility between versions of the Java Reactive Streams driver and versions of Java. A check mark (✓) in a cell means that the Java Reactive Streams driver version is fully compatible with the Java version. A blank cell means that the combination is incompatible or untested.

Starting with Java 8, the table lists only long-term support (LTS) Java versions. The driver supports all versions later than Java 8 through Java Virtual Machine (JVM) backwards compatibility.

| Java Reactive Streams Driver Version | Java 21 | Java 17 | Java 11 | Java 8 | Java 7 | Java 6 |
| --- | --- | --- | --- | --- | --- | --- |
| 4.11 to 5.13 | ✓ | ✓ | ✓ | ✓ |  | |
| 4.5 to 4.10 | ✓ | ✓ | ✓ | ✓ |  | |
| 4.4 |  | ✓ | ✓ | ✓ |  | |
| 4.1 to 4.3 |  |  | ✓ | ✓ | ✓ | ✓ |

This driver version is not compatible with virtual threads.

**Tip:**

To learn how to download the MongoDB Extension for Hibernate ORM and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/java/mongodb-hibernate/current/get-started/)

## Hibernate Compatibility

The MongoDB Extension for Hibernate ORM requires Hibernate ORM 6.6 or earlier.

## MongoDB Server Compatibility

The MongoDB Extension for Hibernate ORM requires MongoDB Server 7.0 or later.

## Java Compatibility

The MongoDB Extension for Hibernate ORM requires Java 17 or later.

## Java Driver Compatibility

The MongoDB Extension for Hibernate ORM requires MongoDB Java Driver 5.5 or later.

**Tip:**

To learn how to get started with Spring Session MongoDB and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/java/sync/current/integrations/spring-session/spring-session-get-started/)

## Spring Ecosystem Compatibility

Spring Session MongoDB is compatible with the following Spring products:

- Spring Session 4.0 or later

- Spring Framework 7.0 or later

- Spring Boot 4.0 or later

- Spring Data 2025.1 or later

## MongoDB Server Compatibility

Spring Session MongoDB requires MongoDB Server 4.2 or later.

## Java Compatibility

Spring Session MongoDB requires Java 17 or later.

## Java Driver Compatibility

Spring Session MongoDB requires MongoDB Java Driver 5.6.1 or later.

**Tip:**

To learn how to download the Kotlin Sync driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/kotlin/kotlin-sync-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Kotlin driver and MongoDB Server:

| Kotlin Driver Version | MongoDB 9.0 | MongoDB 8.3 | MongoDB 8.1 to 8.2 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 5.12 to 5.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.9 to 5.11 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.8 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.2 to 5.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.10 to 5.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Kotlin Sync driver between 5.9 and 5.11 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Kotlin Sync driver, this includes version 5.12 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Kotlin Sync driver version 5.2 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 5.12 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Kotlin Sync driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Kotlin Compatibility

The Kotlin driver requires Kotlin 1.8 or later.

**Tip:**

To learn how to download the Kotlin Coroutine driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/kotlin/coroutine/current/getting-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Kotlin Coroutine driver and MongoDB Server:

| Kotlin Driver Version | MongoDB 9.0 | MongoDB 8.3 | MongoDB 8.1 to 8.2 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 5.12 to 5.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.9 to 5.11 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.8 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.2 to 5.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.10 to 5.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Kotlin Coroutine driver between 5.9 and 5.11 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Kotlin Coroutine driver, this includes version 5.12 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Kotlin Coroutine driver version 5.2 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 5.12 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Kotlin Coroutine driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Kotlin Compatibility

The Kotlin Coroutine driver requires Kotlin 1.8 or later.

**Tip:**

To learn how to download the Node.js driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/node/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Node.js driver and MongoDB Server:

| Node.js Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 7.6 to 7.7 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 7.3 to 7.5 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 6.9 to 7.2 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.7 to 6.8 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.0 to 5.6 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 4.8 to 4.17 |  |  | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 4.0 to 4.7 |  |  | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 3.7 |  |  |  | ⊛ | ✓ | ✓ | ✓ |
| 3.6 |  |  |  | ⊛ | ⊛ | ✓ | ✓ |

When using Node.js Driver version 3.7, you must set the `useUnifiedTopology` flag to `true` for certain features.

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Node.js driver between 7.3 and 7.5 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Node.js driver, this includes version 7.6 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Node.js driver version 6.9 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 7.6 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Node.js driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Node.js Compatibility

This section shows compatibility between versions of the Node.js driver and versions of Node.js. A check mark (✓) in a cell means that the Node.js driver version is fully compatible with the Node.js version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between the Node.js driver and Node.js:

| Node.js Driver Version | Node.js v24.x.x | Node.js v22.x.x | Node.js v20.x.x | Node.js v18.x.x | Node.js v16.x.x | Node.js v14.x.x | Node.js v12.x.x | Node.js v10.x.x | Node.js v8.x.x | Node.js v6.x.x | Node.js v4.x.x |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 7.0 to 7.7 | ✓ | ✓ | ✓ |  |  |  |  |  |  |  | |
| 6.11 to 6.21 |  | ✓ | ✓ | ✓ | ✓ |  |  |  |  |  | |
| 6.0 to 6.10 |  |  | ✓ | ✓ | ✓ |  |  |  |  |  | |
| 5.6.x to 5.9.x |  |  | ✓ | ✓ | ✓ | ✓ |  |  |  |  | |
| 5.0.0 to 5.5.x |  |  |  | ✓ | ✓ | ✓ |  |  |  |  | |
| 4.x |  |  |  | ✓ | ✓ | ✓ | ✓ |  |  |  | |
| 3.x |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

Version 7.x of the Node.js driver requires Node.js v20.19.0 or later.

Version 6.x of the Node.js driver requires Node.js v16.20.1 or later.

## Component Compatibility

The following table describes add-on component version compatibility for the Node.js driver. The table uses [caret ranges](https://docs.npmjs.com/cli/v6/using-npm/semver#caret-ranges-123-025-004) (`^`) to denote compatible versions. If a cell is empty, the driver version isn't compatible with the component.

| Node.js Driver Version | bson | bson-ext | @mongodb-js/kerberos | mongodb-client-encryption | @mongodb-js/zstd | @aws-sdk/credential-providers | gcp-metadata | socks |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 7.x | ^7.0.0 |  | ^7.0.0 | ^7.0.0 | ^7.0.0 | ^3.806.0 | ^7.0.1 | ^2.8.6 |
| 6.x | ^6.0.0 |  | ^2.0.1 | ^6.0.0 | ^1.1.0 |  |  | |
| 5.x | ^5.0.0 |  | ^1.0.0 or ^2.0.0 | ^2.3.0 | ^1.0.0 |  |  | |
| 4.x | ^4.0.0 | ^4.0.0 | ^1.0.0 or ^2.0.0 | ^1.0.0 or ^2.0.0 | ^1.0.0 |  |  | |
| 3.x | ^1.0.0 | ^1.0.0 or ^2.0.0 | ^1.0.0 | ^1.0.0 |  |  |  | |

Driver versions 5.x and later don't support `bson-ext`. Use `bson` instead.

**Tip:**

To learn how to download the PHP library and create your first application, see [Get Started.](https://www.mongodb.com/docs/php-library/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the PHP driver and MongoDB Server:

| PHP Driver Versions | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| ext + lib 2.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 2.4 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 2.3 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 1.20 to 2.2 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 1.16 to 1.19 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 1.15 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the PHP library between 2.3 and 2.4 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the PHP library, this includes version 2.5 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use PHP library version 1.20 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 2.5 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All PHP library releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## PHP Compatibility

This section shows compatibility between versions of the PHP library and versions of PHP. A check mark (✓) in a cell means that the PHP library version is fully compatible with the PHP version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between the PHP driver and PHP:

| PHP Driver Versions | PHP 8.5 | PHP 8.4 | PHP 8.3 | PHP 8.2 | PHP 8.1 | PHP 8.0 | PHP 7.4 | PHP 7.3 | PHP 7.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ext + lib 2.1 to 2.5 | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  | |
| ext + lib 1.21 to 2.0 |  | ✓ | ✓ | ✓ | ✓ |  |  |  | |
| ext + lib 1.20 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| ext + lib 1.17 to 1.19 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| ext + lib 1.16 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ext + lib 1.15 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

**Note: 32-bit Environments**

We recommend that you use the PHP driver on a 64-bit environment. On 32-bit environments, the driver returns 64-bit integers from the database as instances of the [MongoDB\BSON\Int64](https://www.php.net/manual/en/class.mongodb-bson-int64.php) class, not PHP integers.

## PHP Extension Compatibility

The MongoDB PHP Driver consists of two components:

- **MongoDB PHP Extension**: A minimal API for core driver functionality

- **MongoDB PHP Library**: A high-level API that includes abstractions for client, database, and collection objects, and provides database operation methods

To use the PHP driver, you must install both components. The following table shows the minimum supported PHP extension version for each PHP library version:

| PHP Library Version | Minimum PHP Extension Version |
| --- | --- |
| 2.5 | 2.5 |
| 2.4 | 2.4 |
| 2.3 | 2.3 |
| 2.2 | 2.2 |
| 2.1 | 2.1 |
| 2.0 | 2.0 |
| 1.21 | 1.21 |
| 1.20 | 1.20 |
| 1.19 | 1.19 |
| 1.18 | 1.18 |
| 1.17 | 1.17 |
| 1.16 | 1.15 |
| 1.15 | 1.15 |
| 1.14 | 1.14 |
| 1.13 | 1.12 |
| 1.12 | 1.12 |
| 1.11 | 1.11 |
| 1.10 | 1.10 |

**Tip:**

Most PHP library versions require the same PHP extension version, because new features include updates to both components. We recommend that you use the same library and extension version in your application.

To learn more about the PHP library and its requirements, see the [mongodb/mongodb](https://packagist.org/packages/mongodb/mongodb) package on Packagist.

**Tip:**

To learn how to download Laravel MongoDB and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/quick-start/)

## Laravel Compatibility

This section shows compatibility between versions of the Laravel Integration and versions of Laravel. A check mark (✓) in a cell means that the Laravel Integration version is fully compatible with the Laravel version. A blank cell means that the combination is incompatible or untested.

| Laravel MongoDB Version | Laravel 13.x | Laravel 12.x | Laravel 11.x | Laravel 10.x | Laravel 9.x |
| --- | --- | --- | --- | --- | --- |
| 5.9 to 5.11 | ✓ | ✓ |  |  | |
| 5.7 to 5.8 | ✓ | ✓ | ✓ | ✓ | |
| 5.2 to 5.6 |  | ✓ | ✓ | ✓ | |
| 4.2 to 5.1 |  |  | ✓ | ✓ | |
| 4.1 |  |  |  | ✓ | |
| 4.0 |  |  |  | ✓ | |

To find compatibility information for unmaintained versions of the Laravel Integration, see [Laravel Version Compatibility](https://github.com//mongodb/laravel-mongodb/blob/3.9/README.md#installation) on GitHub.

## PHP Compatibility

This section shows compatibility between versions of the Laravel MongoDB Integration and versions of PHP. A check mark (✓) in a cell means that the Laravel MongoDB Integration version is fully compatible with the PHP version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between Laravel MongoDB and PHP:

| Laravel MongoDB Version | PHP 8.5 | PHP 8.4 | PHP 8.3 | PHP 8.2 | PHP 8.1 |
| --- | --- | --- | --- | --- | --- |
| 5.9 to 5.11 | ✓ | ✓ | ✓ | ✓ | |
| 4.0 to 5.8 | ✓ | ✓ | ✓ | ✓ | ✓ |

## PHP Driver Compatibility

Laravel MongoDB 5.2 or later requires v1.21 of the MongoDB PHP Library and MongoDB PHP Extension.

**Important: MongoDB PHP Extension v2.0 Compatibility**

If you upgrade the MongoDB PHP Extension to v2.0, you must also upgrade Laravel MongoDB to v5.2.1. Laravel MongoDB v5.2.1 still supports v1.x of the extension.

**Tip:**

To learn how to download the PyMongo driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/python/pymongo-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between PyMongo and MongoDB Server:

| PyMongo Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 4.18 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| 4.17 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4.14 to 4.16 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4.9 to 4.13 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.4 to 4.8 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.2 to 4.3 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.7 to 4.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of PyMongo between 4.17 and 4.17 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For PyMongo, this includes version 4.18 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use PyMongo version 4.9 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 4.18 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All PyMongo releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Python Compatibility

PyMongo supports both CPython and PyPy.

When a version of Python is marked end-of-life (EOL), the next minor release of PyMongo drops support for that version. The driver offers the following ongoing support for EOL Python versions:

- **CPython**: The last minor PyMongo version compatible with the EOL CPython version receives critical bug fixes for one year.

- **PyPy**: PyMongo doesn't support PyPy versions past their EOL date.

### Python 3

#### CPython

This section shows compatibility between versions of the PyMongo and versions of CPython. A check mark (✓) in a cell means that the PyMongo version is fully compatible with the CPython version. A blank cell means that the combination is incompatible or untested.

| PyMongo Version | CPython 3.15 | CPython 3.14 | CPython 3.13 | CPython 3.12 | CPython 3.11 | CPython 3.10 | CPython 3.9 | CPython 3.8 | CPython 3.7 | CPython 3.6 | CPython 3.5 | CPython 3.4 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 4.19 | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  |  |  |  | |
| 4.14 to 4.18 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  |  | |
| 4.11 to 4.13 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  |  | |
| 4.9 to 4.10 |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  | |
| 4.8 |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  |  |  | |
| 4.5 to 4.7 |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  |  | |
| 4.3 to 4.4 |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  |  | |
| 4.2 |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ |  |  | |
| 4.1 |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| 4.0 |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| 3.13 |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.12 |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.11 |  |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.10 |  |  |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.7 to 3.9 |  |  |  |  |  |  |  |  | ✓ | ✓ | ✓ | ✓ |

#### PyPy

This section shows compatibility between versions of the PyMongo and versions of PyPy. A check mark (✓) in a cell means that the PyMongo version is fully compatible with the PyPy version. A blank cell means that the combination is incompatible or untested.

| PyMongo Version | PyPy3.11 | PyPy3.10 | PyPy3.9 | PyPy3.8 | PyPy3.7 | PyPy3.6 | PyPy3.5 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 4.19 |  |  |  |  |  |  | |
| 4.16 to 4.18 | ✓ |  |  |  |  |  | |
| 4.11 to 4.15 |  | ✓ |  |  |  |  | |
| 4.8 to 4.10 |  | ✓ | ✓ |  |  |  | |
| 4.5 to 4.7 |  | ✓ | ✓ | ✓ |  |  | |
| 4.2 to 4.4 |  | ✓ | ✓ | ✓ | ✓ |  | |
| 4.1 |  | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 4.0 |  | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.12 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.11 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.10 |  |  |  | ✓ | ✓ | ✓ | ✓ |
| 3.7 to 3.9 |  |  |  |  | ✓ | ✓ | ✓ |

Versions of Python 3.10 and later are not compatible with TLS/SSL for versions of MongoDB 4.0 and earlier. For more information, see the [Troubleshooting](https://www.mongodb.com/docs/languages/python/pymongo-driver/current/security/tls/#troubleshooting) section of the TLS page.

PyMongo 4.1 requires Python 3.6.2 or later.

### Python 2

PyMongo versions 3.7 through 3.12 are compatible with Python 2.7 and PyPy2.7. However, in some cases, PyMongo applications behave differently when running in a Python 2 environment.

The following sections describe the differences in behavior between Python 2 and Python 3 when using PyMongo.

#### Binary Data

In all versions of Python, PyMongo encodes instances of the [bytes](https://docs.python.org/3/library/stdtypes.html#bytes) class as binary data with subtype 0, the default subtype for binary data. In Python 3, PyMongo decodes these values to instances of the `bytes` class. In Python 2, the driver decodes them to instances of the [Binary](https://pymongo.readthedocs.io/en/4.11/api/bson/binary.html#bson.binary.Binary) class with subtype 0.

The following code examples show how PyMongo decodes instances of the `bytes` class. Select the Python 2 or Python 3 tab to view the corresponding code.

### Python 2

```python
from pymongo import MongoClient

client = MongoClient()
client.test.test.insert_one({'binary': b'this is a byte string'})
doc = client.test.test.find_one()
print(doc)
```

**Output:**

```text
{u'_id': ObjectId('67afb78298f604a28f0247b4'), u'binary': Binary('this is a byte string', 0)}
```

The driver behaves the same way when decoding JSON binary values with subtype 0. In Python 3, it decodes these values to instances of the `bytes` class. In Python 2, the driver decodes them to instances of the `Binary` class with subtype 0. For code examples that show the differences, see the [Extended JSON](https://www.mongodb.com/docs/languages/python/pymongo-driver/current/data-formats/extended-json/#std-label-pymongo-extended-json-binary-values) page.

#### Pickled ObjectIds

If you pickled an `ObjectId` in Python 2 and want to unpickle it in Python 3, you must pass `encoding='latin-1'` as an argument to the `pickle.loads()` method.

The following example shows how to use Python 3 to unpickle an `ObjectId` that was pickled in Python 2:

```python
import pickle
pickle.loads(b'<ObjectId byte stream>', encoding='latin-1')
```

If a Python 3 application uses a compatible serialization protocol to pickle an `ObjectId`, you can use Python 2 to unpickle it. To specify a compatible protocol in Python 3, pass a value of 0, 1, or 2 for the `protocol` parameter of the `pickle.dumps()` method.

The following example pickles an `ObjectId` in Python 3, then prints the `ObjectId` and resulting `bytes` instance:

```python
import pickle
from bson.objectid import ObjectId

oid = ObjectId()
oid_bytes = pickle.dumps(oid, protocol=2)
print("ObjectId: {}".format(oid))
print("ObjectId bytes: {}".format(oid_bytes))
```

**Output:**

```shell
ObjectId: 67af9b1fae9260c0e97eb9eb
ObjectId bytes: b'\x80\x02cbson.objectid\nObjectId\nq\x00...
```

The following example unpickles the `ObjectId` from the previous example, and then prints the `bytes` and `ObjectId` instances:

```python
import pickle
from bson.objectid import ObjectId

oid_bytes = b'\x80\x02cbson.objectid\nObjectId\nq\x00...'
oid = pickle.loads(oid_bytes)
print("ObjectId bytes: {}".format(oid_bytes))
print("ObjectId: {}".format(oid))
```

**Output:**

```shell
ObjectId bytes: b'\x80\x02cbson.objectid\nObjectId\nq\x00)...
ObjectId: 67af9b1fae9260c0e97eb9eb
```

**Tip:**

To learn how to download PyMongoArrow and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/python/pymongo-arrow-driver/current/get-started/)

## MongoDB Server Compatibility

The supported MongoDB Server versions depend on your PyMongo version. To learn which server versions PyMongo supports, see [MongoDB Server Compatibility](https://www.mongodb.com/docs/drivers/compatibility/?driver-language=python\&python-driver-framework=pymongo#mongodb-server-compatibility-13) on the PyMongo compatibility page.

## PyArrow Compatibility

The following table lists the PyArrow version required by each PyMongoArrow version:

| PyMongoArrow Version | PyArrow Version |
| --- | --- |
| 1.14.x | 24.x |
| 1.12.x - 1.13.x | 23.x |
| 1.11.x | 22.x |
| 1.10.x | 21.x |
| 1.8.x - 1.9.x | 20.x |
| 1.7.x | 19.x |
| 1.6.x | 18.x |
| 1.5.x | 17.x |
| 1.4.x | 16.x |

## Python Compatibility

PyMongoArrow requires CPython 3.9, 3.10, 3.11, 3.12, or 3.13.

## PyMongo Compatibility

PyMongoArrow requires PyMongo 4.4 or later.

As of May 14, 2025, Motor is deprecated in favor of the GA release of the PyMongo Async API in the PyMongo library. We will not add new features to Motor, and we will provide only bug fixes until it reaches end of life on May 14, 2026. After that, we will fix only critical bugs until final support ends on May 14, 2027. We strongly recommend migrating to the PyMongo Async API while Motor is still supported.

For more information about migrating, see the [Migrate to PyMongo Async](https://www.mongodb.com/docs/languages/python/pymongo-driver/current/reference/migration/) guide in the PyMongo documentation.

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between Motor and MongoDB Server:

| Motor Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 3.7 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.6 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.2 to 3.5 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.1 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.0 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |

## Python Compatibility

This section shows compatibility between versions of the Motor and versions of Python. A check mark (✓) in a cell means that the Motor version is fully compatible with the Python version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between Motor and Python:

| Motor Driver Version | Python 3.13 | Python 3.12 | Python 3.11 | Python 3.10 | Python 3.9 | Python 3.8 | Python 3.7 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 3.7 | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| 3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.5 |  | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 3.3 to 3.4 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.1 to 3.2 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.0 |  |  |  | ✓ | ✓ | ✓ | ✓ |

**Note: asyncio Support**

For asyncio support, Motor requires Python 3.4 or later, or Python 3.3 with the [asyncio package from PyPI.](https://pypi.python.org/pypi/asyncio)

## PyMongo Compatibility

The following table shows the equivalent versions of Motor and PyMongo:

| Motor Version | PyMongo Version |
| --- | --- |
| 3.7 | 4.10 |
| 3.6 | 4.9 |
| 3.3 | 4.4 |
| 3.1 | 4.2 |
| 3.0 | 4.0 |

**Tip:**

To learn how to download Django MongoDB Backend and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/python/django-mongodb/current/get-started/)

## PyMongo Compatibility

Django MongoDB Backend supports PyMongo 4.7 and later.

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between Django MongoDB Backend and MongoDB Server:

| Django MongoDB Backend Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 |
| --- | --- | --- | --- | --- |
| 6.1 | ✓ | ✓ | ✓ | |
| 6.0 | ✓ | ✓ | ✓ | |
| 5.2 | ✓ | ✓ | ✓ | ✓ |

## Django Compatibility

Your major and minor version of Django MongoDB Backend must match your Django version. For example, Django MongoDB Backend 6.0 requires Django 6.0.

## Language Compatibility

This section shows compatibility between versions of the Django MongoDB Backend and versions of Python. A check mark (✓) in a cell means that the Django MongoDB Backend version is fully compatible with the Python version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between Django MongoDB Backend and Python:

| Django MongoDB Backend Version | Python 3.14 | Python 3.13 | Python 3.12 | Python 3.11 | Python 3.10 |
| --- | --- | --- | --- | --- | --- |
| 6.1 | ✓ | ✓ | ✓ |  | |
| 6.0 | ✓ | ✓ | ✓ |  | |
| 5.2 | ✓ | ✓ | ✓ | ✓ | ✓ |

**Tip:**

To learn how to download the Ruby driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/ruby-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Ruby driver and MongoDB Server:

| Ruby Driver | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 2.26 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| 2.24 to 2.25 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.21 to 2.23 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.19 to 2.20 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.18 |  | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
| 2.16 to 2.17 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.14 to 2.15 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 2.13 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
| 2.12 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ |
| 2.11 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ |
| 2.10 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ |

OCSP verification is implemented as of driver version 2.14.

Polling of SRV records in sharded topologies is implemented as of driver version 2.11.

Client-side encryption is implemented as of driver version 2.12.

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Ruby driver between 2.24 and 2.25 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Ruby driver, this includes version 2.26 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Ruby driver version 2.21 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 2.26 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Ruby driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Ruby Compatibility

This section shows compatibility between versions of the Ruby driver and versions of Ruby. A check mark (✓) in a cell means that the Ruby driver version is fully compatible with the Ruby version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between the Ruby driver and Ruby:

| Ruby Driver | Ruby 4.0 | Ruby 3.3 | Ruby 3.2 | Ruby 3.1 | Ruby 3.0 | Ruby 2.7 | JRuby 9.4 | JRuby 9.3 | JRuby 9.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 2.23.0 to 2.26.0 | ✓ | ✓ | ✓ | ✓ | ✓ |  | ✓ | ✓ | |
| 2.21.1 to 2.22.0 |  | ✓ | ✓ | ✓ | ✓ |  | ✓ | ✓ | |
| 2.20 to 2.21.0 |  |  | ✓ | ✓ | ✓ |  | ✓ | ✓ | |
| 2.19 |  |  | ✓ | ✓ | ✓ | ✓ |  | ✓ | ✓ |

The driver does not support older versions of Ruby.

## Rails/ActiveSupport Compatibility

The Ruby driver does not depend on ActiveSupport. However, if your application uses ActiveSupport or Ruby on Rails, you must load the driver's ActiveSupport compatibility code for behavior such as time serialization to be correct:

```ruby
require 'mongo'
require 'mongo/active_support'
```

Applications using Mongoid 7.0.6 or newer do not need to explicitly load the driver's ActiveSupport code, because Mongoid automatically does so.

## TLS/SSL Compatibility

The Ruby driver uses the protocols supported by the underlying Ruby `openssl` extension. The `openssl` extension generally exposes the functionality available in the operating system's OpenSSL library.

Industry best practices, and some regulations, require the use of TLS 1.1 or later. Some operating systems or versions might not provide an OpenSSL version that supports these TLS versions.

If you use a macOS version earlier than 10.13 (High Sierra), you need to install Ruby from [rvm](https://rvm.io/), [homebrew](https://brew.sh/), [macports](https://www.macports.org/), or another similar source. See [Installing Ruby](https://www.ruby-lang.org/en/documentation/installation) for more options.

If you use Linux or other non-macOS Unix systems, you can check your OpenSSL version as follows:

```sh
openssl version
```

If the version number is earlier than 1.0.1, support for TLS 1.1 or later is not available. Contact your operating system vendor for a solution or upgrade to a newer distribution.

You can check your TLS version by running the following command:

```sh
ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']"
```

After running the command, you must see `TLS 1.X` where `X` is greater than or equal to `1`.

To learn more about TLS versions and their security implications, see the [Transport Layer Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet.html).

**Note: JRuby Limitations**

Because of limitations in JRuby, the driver does not support ECDSA server certificates or OCSP endpoint checking.

**Tip:**

To learn how to download Mongoid and create your first application, see [Get Started.](https://www.mongodb.com/docs/mongoid/current/quick-start-rails/)

## MongoDB Server Compatibility

A check mark (✓) in a cell means that the Mongoid version is compatible with the MongoDB Server version. A blank cell means that the combination is incompatible or untested.

The following table shows compatibility between Mongoid and MongoDB Server:

| Mongoid Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 9.0 to 9.1 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 8.0 to 8.1 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ |

## Ruby Compatibility

This section shows compatibility between versions of the Mongoid and versions of Ruby. A check mark (✓) in a cell means that the Mongoid version is fully compatible with the Ruby version. A blank cell means that the combination is incompatible or untested.

| Mongoid Version | Ruby 4.0 | Ruby 3.2 | Ruby 3.1 | Ruby 3.0 | Ruby 2.7 | Ruby 2.6 | JRuby 9.4 | JRuby 9.3 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 9.0 to 9.1 | ✓ | ✓ | ✓ | ✓ | ✓ |  | ✓ | |
| 8.1 |  | ✓ | ✓ | ✓ | ✓ | ✓ |  | ✓ |
| 8.0 |  |  | ✓ | ✓ | ✓ | ✓ |  | ✓ |

Mongoid v9.0.11 introduces official support for Ruby 4.0.

## Ruby Driver Compatibility

Mongoid 8.0 to 9.0 require MongoDB Ruby Driver 2.18 or later.

**Note: Patch Version Compatibility**

Older patch versions of Mongoid within the same minor release might support older Ruby driver versions. For example, Mongoid v7.0.5 supports Ruby driver v2.5 and later, but Mongoid v7.0.6 requires driver v2.7 or later.

## Ruby on Rails Compatibility

The following table shows compatibility between Mongoid and Ruby on Rails. A check mark (✓) in a cell means that the Mongoid version is compatible with the Rails version. A blank cell means that the combination is incompatible or untested.

| Mongoid Version | Rails 8.0 | Rails 7.2 | Rails 7.1 | Rails 7.0 | Rails 6.1 | Rails 6.0 | Rails 5.2 | Rails 5.1 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 9.0 to 9.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | |
| 8.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 8.0 |  |  | ✓ | ✓ | ✓ | ✓ | ✓ | |

Rails 8.0 requires Mongoid v8.1.7 and v9.0.3 in the respective 8.1 and 9.0 stable branches.

Rails 7.2 requires Mongoid v8.1.6 and v9.0.2 in the respective 8.1 and 9.0 stable branches.

Rails 7.1 requires Mongoid v8.0.7 or v8.1.3 in the respective 8.0 and 8.1 stable branches.

Using Rails 5.x with Ruby 3 is not supported.

### Rails Frameworks Support

Mongoid is compatible with many of the frameworks that constitute Ruby on Rails. The following table shows Mongoid's compatibility with each framework. A check mark (✓) means that the framework is supported. A blank cell means that the framework depends directly on [Active Record](https://guides.rubyonrails.org/active_record_basics.html) and might not work as expected without it.

**Tip:**

To use a framework that depends directly on Active Record, install both Mongoid and Active Record in your application.

| Rails Framework | Mongoid Support | Notes |
| --- | --- | --- |
| `ActionCable` | ✓ | There is no MongoDB adapter for `ActionCable`, but you can use any existing adapter, such as the [Redis Adapter](https://guides.rubyonrails.org/action_cable_overview.html#redis-adapter), alongside Mongoid models. |
| `ActionMailbox` |  | Depends directly on Active Record. |
| `ActionMailer` | ✓ | |
| `ActionPack` | ✓ | |
| `ActionText` |  | Depends directly on Active Record. |
| `ActionView` | ✓ | |
| `ActiveJob` | ✓ | Serialize `BSON::ObjectId` values as strings and reconstitute them inside the job. To learn more, see [ActiveJob.](https://www.mongodb.com/docs/mongoid/current/integrations-tools/rails-integration/#mongoid-rails-activejob) |
| `ActiveModel` | ✓ | The `Mongoid::Document` module includes `ActiveModel::Model` and leverages `ActiveModel::Validations` for [Document Validation.](https://www.mongodb.com/docs/mongoid/current/data-modeling/validation/) |
| `ActiveRecord` | ✓ | Mongoid is an alternative to Active Record. You can run both in the same application. |
| `ActiveStorage` |  | Depends directly on Active Record. |
| `ActiveSupport` | ✓ | The `Mongoid` module requires `ActiveSupport`. `Mongoid` uses `ActiveSupport::TimeWithZone` for handling time values. |

**Tip:**

To learn how to download the Rust driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/drivers/rust/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Rust driver and MongoDB Server:

| Rust Driver Version | MongoDB 9.0 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 3.9 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⊛ |
| 3.6 to 3.8 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 3.1 to 3.5 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.6 to 3.0 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2.5 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.4 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.2 to 2.3 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
| 2.0 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |

The Rust driver is not compatible with MongoDB Server versions older than 4.2.

These Rust driver versions do not support [OCSP.](https://www.mongodb.com/docs/manual/core/security-transport-encryption/#ocsp--online-certificate-status-protocol-)

This Rust driver version does not support Decimal128 or [OCSP.](https://www.mongodb.com/docs/manual/core/security-transport-encryption/#ocsp--online-certificate-status-protocol-)

These Rust driver versions do not support Decimal128, [Client-Side Field Level Encryption](https://www.mongodb.com/docs/manual/core/csfle.md#std-label-manual-csfle-feature), [GridFS](https://www.mongodb.com/docs/manual/core/gridfs/), or [OCSP.](https://www.mongodb.com/docs/manual/core/security-transport-encryption/#ocsp--online-certificate-status-protocol-)

This Rust driver version does not support Decimal128, [Client-Side Field Level Encryption](https://www.mongodb.com/docs/manual/core/csfle.md#std-label-manual-csfle-feature), [GridFS](https://www.mongodb.com/docs/manual/core/gridfs/), [OCSP](https://www.mongodb.com/docs/manual/core/security-transport-encryption/#ocsp--online-certificate-status-protocol-), or change streams.

This Rust driver version does not support Decimal128, [Client-Side Field Level Encryption](https://www.mongodb.com/docs/manual/core/csfle.md#std-label-manual-csfle-feature), [GridFS](https://www.mongodb.com/docs/manual/core/gridfs/), [OCSP](https://www.mongodb.com/docs/manual/core/security-transport-encryption/#ocsp--online-certificate-status-protocol-), change streams, or [Causal Consistency.](https://www.mongodb.com/docs/manual/core/causal-consistency-read-write-concerns/)

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Rust driver between 3.6 and 3.8 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Rust driver, this includes version 3.9 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Rust driver version 3.1 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 3.9 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Rust driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Rust Compatibility

This section shows compatibility between versions of the Rust driver and versions of Rust. A check mark (✓) in a cell means that the Rust driver version is fully compatible with the Rust version. A blank cell means that the combination is incompatible or untested.

The following table lists the Minimum Supported Rust Version (MSRV) for each version of the Rust driver:

| Rust Driver Version | Minimum Supported Rust Version |
| --- | --- |
| 3.7 | 1.88 |
| 3.6 | 1.85 |
| 3.3 to 3.5 | 1.83 |
| 3.2 | 1.71.1 |
| 2.8 to 3.1 | 1.61.0 |
| 2.4 to 2.7 | 1.57.0 |

**Note: MSRV Updates**

The Rust driver updates its MSRV (Minimum Supported Rust Version) only in major and minor releases, and only to a Rust version that has been available for at least six months.

**Tip:**

To learn how to download the Scala driver and create your first application, see [Get Started.](https://www.mongodb.com/docs/languages/scala/scala-driver/current/get-started/)

## MongoDB Server Compatibility

This section describes compatibility between versions of MongoDB Server and versions of the driver. The following table explains the levels of compatibility:

| Icon | Explanation |
| --- | --- |
| ✓ | All features are supported. |
| ⊛ | The driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
| ✗ | The driver version will not work with the MongoDB version. Attempting to connect to the MongoDB version will result in errors. |
| No mark | The driver version is not tested with the MongoDB version. |

The following table shows compatibility between the Scala driver and MongoDB Server:

| Scala Driver Version | MongoDB 9.0 | MongoDB 8.3 | MongoDB 8.1 to 8.2 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.1 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 5.12 to 5.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.9 to 5.11 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.8 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 5.2 to 5.7 |  | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.10 to 5.1 |  | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.8 to 4.9 |  | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 4.7 |  | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |

### FAQs

#### My driver version is partially compatible (⊛) with MongoDB 9.0. Will my application work?

If your application works on a currently supported MongoDB version, it should also work with 9.0, but we strongly recommend that you test it in a non-production environment. A partially compatible driver version doesn't support every new feature of the MongoDB Server version it's connecting to. All versions of the Scala driver between 5.9 and 5.11 are partially compatible with MongoDB Server 9.0.

If your application doesn't work with MongoDB 9.0, we recommend upgrading to a driver version that is fully compatible (✓) with it. For the Scala driver, this includes version 5.12 or later. Using a fully compatible driver version ensures long-term stability and allows your application to use the latest MongoDB features.

For a list of features added or removed in each version of your driver, see the driver's [release notes](https://www.mongodb.com/docs/languages/c/c-driver/current/whats-new/). For a list of features added or removed in each version of MongoDB Server, see the [MongoDB Server release notes.](https://www.mongodb.com/docs/manual/release-notes/)

#### My driver version is fully compatible with 7.0 and 8.0, but MongoDB 7.0 is EOL. What does my upgrade path look like?

If you're upgrading driver versions because your current MongoDB Server version has reached its end-of-life (EOL) date, we recommend using a driver version that is fully compatible (✓) with your MongoDB version. For example, if you're upgrading to MongoDB Server 8.0, you can use Scala driver version 5.2 or later.

However, if you're upgrading to MongoDB Server 9.0, we recommend upgrading to driver version 5.12 or later. This ensures that your applications can use all features available in MongoDB Server 9.0 and provides longer term compatibility with future versions.

#### When will my driver version reach EOL?

New driver versions are fully compatible with any MongoDB Server version that reached EOL within the last three years. After this period, new driver versions might not be fully compatible with the EOL MongoDB Server versions.

For example, MongoDB Server 8.0 is EOL as of October 2029. All Scala driver releases until August 2032 will be fully compatible with MongoDB Server 8.0.

To ensure long-term compatibility and security, we recommend upgrading your driver before your version of MongoDB Server reaches EOL. To learn more about MongoDB Server release and EOL dates, see [MongoDB Software Lifecycle Schedules.](https://www.mongodb.com/support-policy/lifecycles)

## Scala Compatibility

This section shows compatibility between versions of the Scala driver and versions of Scala. A check mark (✓) in a cell means that the Scala driver version is fully compatible with the Scala version. A blank cell means that the combination is incompatible or untested.

| Scala Driver Version | Scala 3 | Scala 2.13 | Scala 2.12 | Scala 2.11 |
| --- | --- | --- | --- | --- |
| 5.7+ | ✓ | ✓ | ✓ | ✓ |
| 2.0 to 5.6 |  | ✓ | ✓ | ✓ |
