Updating MongoDB
Should I update MongoDB?
You should only consider updating your MongoDB version if you're planning to upgrade your instance of Server CE/Server Pro.
If you're running a MongoDB version that is newer than the recommended for your current (or target) version there's no need to make any changes.
You should never downgrade your MongoDB version.
If you experience a specific problem that you think might be related to your current version of MongoDB, feel free to raise an issue if you are a Server CE user or contact Overleaf Support if you are Server Pro a user.
Checking your MongoDB version
Opening the mongo
shell should immediately print the current version.
Overleaf Toolkit users:
Docker Compose users:
Update process
Updating the version of MongoDB during an upgrade of your Server CE/Server Pro instance is as follows:
Decide the version of Server CE/Server Pro you plan to upgrade to.
Find the version of MongoDB recommended by that specific Overleaf Server CE/Server Pro release.
Follow the instructions to upgrade MongoDB to the target version.
Upgrade Server CE/Server Pro image version and restart the instance.
Our recommendation is to always upgrade Server CE/Server Pro to the latest version available, since it's always guaranteed to be supported (Server Pro users only). In case you decide to go to an earlier version, this table shows the recommended version of MongoDB for earlier releases of Server CE/Server Pro, but you should never downgrade your MongoDB version.
2.0.x
3.4
2.1.x to 2.4.x
3.6
>=2.5.0
4.0
>=3.1.0
4.2
>=3.2.0
4.4
>=4.2.0
5.0
>=5.1.0
6.0
You can view the end-of-life status for each version of MongoDB here.
Upgrading MongoDB
MongoDB requires step-by-step upgrades. That means you can't go straight from, let's say 4.0
to 5.0
. You need first to update 4.2
to 4.4
, and then 5.0
.
Update instructions when running MongoDB outside Docker
Note that the instructions for 5.0
point to a replica set install, instead of standalone. As Server Pro/CE 4.0.1+ uses transactions, MongoDB needs to be run as a replica set.
Toolkit users
Update MONGO_VERSION
, e.g. MONGO_VERSION=6.0
Docker Compose users
Update the version of the mongo
image tag, e.g. services -> mongo -> image:mongo:6.0
;
In most cases the update just requires setting up a compatibility setting before actually updating the version. Let's see an example.
Example: Upgrading MongoDB from 5.0
to 6.0
5.0
to 6.0
Let's start by making sure we're running MongoDB 5.0
:
Overleaf Toolkit users:
Docker Compose users:
According to the upgrade instructions, the only requirement is to have featureCompatibilityVersion
set to 5.0
. We do so by opening a MongoDB shell and running the indicated command:
Overleaf Toolkit users:
Overleaf Toolkit users:
We'll then stop Server CE/Server Pro and MongoDB instances using the bin/stop
command, set MONGO_VERSION=6.0
in config/overleaf.rc
, and then restart the mongo
service using bin/up mongo
) to verify the update went smoothly.
Finally, we'll update the Server CE/Server Pro image version to our target version and recreate all the services using the bin/up -d
command.
Docker Compose users:
We'll then stop Server CE/Server Pro and MongoDB instances using the docker compose down
command, update docker-compose.yml
file to use image: mongo:6.0
, and then restart the mongo
service using the docker compose up mongo
command to verify the update went smoothly.
Finally, we'll update Server CE/Server Pro image version to our target version and recreate all services using the docker compose up
command.
Last updated
Was this helpful?