Docs Menu
Docs Home
/ / /
Mongoid
/

Compatibility

On this page

  • Ruby MongoDB Driver Compatibility
  • Ruby Compatibility
  • MongoDB Server Compatibility
  • Rails Compatibility
  • Rails Frameworks Support

The following compatibility table specifies the versions of Ruby driver for MongoDB (the mongo gem) supported by the most recent patch releases of the specified Mongoid versions.

Note

Older versions of Mongoid within the same minor release may support older driver versions. For example, Mongoid 7.0.5 supports driver versions 2.5 and newer, whereas Mongoid 7.0.6 requires driver version 2.7 or newer.

Mongoid
Driver 2.19-2.18
Driver 2.17-2.10
Driver 2.9-2.7
8.0 thru 9.0
7.2 thru 7.5
7.0 thru 7.1

The following compatibility table specifies the versions of Ruby interpreters supported by Mongoid. "D" in a column means support for that Ruby version is deprecated.

Mongoid
Ruby 3.3
Ruby 3.2
Ruby 3.1
Ruby 3.0
Ruby 2.7
Ruby 2.6
Ruby 2.5
Ruby 2.4
Ruby 2.3
Ruby 2.2
JRuby 9.4
JRuby 9.3
JRuby 9.2
9.0
[1]
8.1
[1]
8.0
7.5
D
D
7.4
7.3
[2]
[2]
D
D
7.2
[3]
[3]
D
D
7.1
[4]
[4]
[5]
7.0
[5]
[6]
[1](1, 2) Ruby 3.3 requires Mongoid 8.1.7 and 9.0.3 in the respective 8.1 and 9.0 stable branches.
[2](1, 2) Mongoid version 7.3.2 or higher is required.
[3](1, 2) Mongoid version 7.2.5 or higher is required.
[4](1, 2) Mongoid version 7.1.10 or higher is required.
[5](1, 2) Ruby version 2.4.1 or higher is required.
[6] Ruby version 2.2.2 or higher is required.

The following compatibility table specifies the recommended version(s) of Mongoid for use with a specific version of MongoDB server.

Note that in order to use features of a particular MongoDB server version, both the driver and Mongoid must support that server version. Please refer to the driver compatibility page for driver compatibility matrices.

"D" in a column means support for that MongoDB server version is deprecated and will be removed in a next version.

Mongoid
MongoDB 7.0
MongoDB 6.0
MongoDB 5.0
MongoDB 4.4
MongoDB 4.2
MongoDB 4.0
MongoDB 3.6
MongoDB 3.4
MongoDB 3.2
MongoDB 3.0
MongoDB 2.6
8.0 thru 9.0
7.4 thru 7.5
D
D
D
D
7.0 thru 7.3
D
D
D
D

The following compatibility table specifies which versions of Ruby on Rails are supported by Mongoid.

Mongoid
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
[13]
[12]
[11]
8.1
[13]
[12]
[11]
[7]
8.0
[11]
[7]
7.5
[7]
D
7.4
[7]
[7]
7.3
[10]
[7]
[7]
7.2
[9]
[7]
[7]
7.1
[9]
7.0
[9]
[8]
[7](1, 2, 3, 4, 5, 6, 7, 8, 9) Using Rails 5.x with Ruby 3 is not supported.
[8] Rails 6.0 requires Mongoid 7.0.5 or later.
[9](1, 2, 3) Rails 6.1 requires Mongoid 7.0.12, 7.1.7 or 7.2.1 in the respective 7.0, 7.1 and 7.2 stable branches.
[10] Rails 7.x requires Mongoid 7.3.4 or later.
[11](1, 2, 3) Rails 7.1 requires Mongoid 8.0.7 or 8.1.3 in the respective 8.0 and 8.1 stable branches.
[12](1, 2) Rails 7.2 requires Mongoid 8.1.6 and 9.0.2 in the respective 8.1 and 9.0 stable branches.
[13](1, 2) Rails 8.0 requires Mongoid 8.1.7 and 9.0.3 in the respective 8.1 and 9.0 stable branches.

Ruby on Rails is comprised of a number of frameworks, which Mongoid attempts to provide compatibility with wherever possible.

Though Mongoid attempts to offer API compatibility with Active Record, libraries that depend directly on Active Record may not work as expected when Mongoid is used as a drop-in replacement.

Note

Mongoid can be used alongside Active Record within the same application without issue.

Rails Framework
Supported?
ActionCable
[14]
ActionMailbox
[15]
ActionMailer

ActionPack

ActionText
[15]
ActionView

ActiveJob
[18]
ActiveModel
[16]
ActiveStorage
[15]
ActiveSupport
[17]
[14] There is currently no MongoDB adapter for ActionCable, however any existing adapter (such as Redis) can be used successfully in conjunction with Mongoid models
[15](1, 2, 3) Depends directly on ActiveRecord
[16] Mongoid::Document includes ActiveModel::Model and leverages ActiveModel::Validations for validations
[17] Mongoid requires ActiveSupport and uses it extensively, including ActiveSupport::TimeWithZone for time handling.
[18] Serialization of BSON & Mongoid objects works best if you explicitly send BSON::ObjectId's as strings, and reconstitute them in the job:
record = Model.find(...)
MyJob.perform_later(record._id.to_s)
class MyJob < ApplicationJob
def perform(id_as_string)
record = Model.find(id_as_string)
# ...
end
end

Back

Installation