> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/nl/onderhoud/updating-mongodb.md).

# MongoDB bijwerken

{% hint style="info" %}
Elke nieuwe release van Server CE/Server Pro zal elke wijziging in de ondersteunde versie van MongoDB vermelden in de [release-opmerkingen](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Moet ik MongoDB bijwerken?

Je moet **alleen** overwegen om je MongoDB-versie bij te werken als je van plan bent je Server CE/Server Pro-instantie te upgraden.

Als je een MongoDB-versie gebruikt die nieuwer is dan de aanbevolen versie voor je huidige (of doel-) versie, hoef je niets te wijzigen.

{% hint style="warning" %}
Je moet je MongoDB-versie nooit downgraden.
{% endhint %}

Als je een specifiek probleem ervaart waarvan je denkt dat het mogelijk verband houdt met je huidige MongoDB-versie, voel je vrij om [een issue te melden](https://github.com/overleaf/overleaf/issues) als je een Server CE-gebruiker bent, of neem contact op met Overleaf Support als je een Server Pro-gebruiker bent.

### Je MongoDB-versie controleren

Het openen van de `mongo` shell zou direct de huidige versie moeten tonen.

Overleaf Toolkit-gebruikers:

```bash
bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build-informatie: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Docker Compose-gebruikers:

```bash
docker compose exec mongo mongod --version
db version v5.0.24
Build-informatie: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Bijwerkproces

Het bijwerken van de MongoDB-versie tijdens een upgrade van je Server CE/Server Pro-instantie gaat als volgt:

1. Bepaal naar welke versie van Server CE/Server Pro je wilt upgraden.
2. Zoek de versie van MongoDB die wordt aanbevolen door die specifieke Overleaf Server CE/Server Pro-release.
3. Volg de instructies om MongoDB bij te werken naar de doelversie.
4. Werk de imageversie van Server CE/Server Pro bij en start de instantie opnieuw.

Onze aanbeveling is om altijd **Server CE/Server Pro** bij te werken naar de laatst beschikbare versie, omdat die altijd gegarandeerd ondersteund wordt (alleen voor Server Pro-gebruikers).

{% hint style="danger" %}
Wanneer je een upgrade van Server CE/Pro uitvoert, raden we aan om te upgraden naar de nieuwste release van de geïmplementeerde major-versie **voordat** je bijwerkt naar de nieuwste release van de **volgende** major-versie. Als je implementatie meer dan één major-versie achterloopt op de nieuwste, moet je een upgrade in meerdere stappen uitvoeren.

Als je bijvoorbeeld 3.5.10 gebruikt, moet je upgraden naar 3.5.13 -> Voer de Full Project History-migratie uit -> 4.2.9 -> 5.5.4.

Je moet **nooit** major-versies overslaan (3.5.10 -> 5.5.4). Als je Toolkit gebruikt en meer dan één major-versie achterloopt op de nieuwste, moet je **niet** het `bin/upgrade` script gebruiken, omdat je een handmatige upgrade in meerdere stappen moet uitvoeren.
{% endhint %}

{% hint style="warning" %}
Het is belangrijk ervoor te zorgen dat je een [consistente back-up](/on-premises/nl/onderhoud/data-and-backups.md#performing-a-consistent-backup) **voordat** maakt bij elke major-versie-upgrade, zodat je kunt terugrollen als dat nodig is.
{% endhint %}

#### Informatie over versieondersteuning

Als je besluit naar een eerdere versie te gaan, toont deze tabel de aanbevolen versie van MongoDB voor eerdere releases van Server CE/Server Pro, maar je zou **nooit** je MongoDB-versie moeten downgraden.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB-versie</th><th align="center">Minimale versie voor functiecompatibiliteit</th><th align="center">Maximaal ondersteunde versie door Node.js-driver</th></tr></thead><tbody><tr><td>2.0.x</td><td align="center">3.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>2.1.x tot 2.4.x</td><td align="center">3.6</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=2.5.0</td><td align="center">4.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.1.0</td><td align="center">4.2</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.2.0</td><td align="center">4.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=4.2.0</td><td align="center">5.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.1.0</td><td align="center">6.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.3.1</td><td align="center">6.0</td><td align="center">5.0</td><td align="center">8.0</td></tr><tr><td>>=5.5.0</td><td align="center">6.0</td><td align="center">6.0</td><td align="center">8.0</td></tr><tr><td>6.0.0</td><td align="center">8.0</td><td align="center">8.0</td><td align="center">8.0</td></tr></tbody></table>

{% hint style="danger" %}
De bovenstaande minimale versie voor functiecompatibiliteit is gebaseerd op de overeenkomstige MongoDB-versie die wordt aanbevolen voor gebruik met de getoonde versie van Overleaf. Als je van plan bent een hogere versie te gebruiken, heeft MongoDB zijn eigen minimale vereiste.
{% endhint %}

Je kunt de compatibiliteitstabel bekijken die de ondersteunde versies van de MongoDB Node.js-driver specificeert voor gebruik met MongoDB [hier](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Je kunt de end-of-life-status van elke versie van MongoDB bekijken [hier](https://endoflife.date/mongodb).

#### MongoDB bijwerken

MongoDB vereist **stapsgewijze upgrades**. Dat betekent dat je niet direct van, laten we zeggen `4.0` naar `5.0`. Eerst moet je `4.2` naar `4.4`, en dan `5.0`.

{% hint style="info" %}
MongoDB gebruikt even nummers voor hun stabiele versies.
{% endhint %}

#### **Bijwerkinstructies bij het uitvoeren van MongoDB buiten Docker**

Hier zijn links naar de bijwerkinstructies van mongodb.com voor het upgraden van MongoDB.

* [MongoDB-release-opmerkingen - MongoDB upgraden van `4.2` naar `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-release-opmerkingen - MongoDB upgraden van `4.4` naar `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-release-opmerkingen - MongoDB upgraden van `5.0` naar `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-release-opmerkingen - MongoDB upgraden van `6.0` naar `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB-release-opmerkingen - MongoDB upgraden van `7.0` naar `8.0`](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)

{% hint style="info" %}
Instructies voor `5.0` en hoger verwijzen naar een installatie als replica set, in plaats van standalone. Aangezien Server Pro/CE 4.0.1+ transacties gebruikt, moet MongoDB als replica set draaien.
{% endhint %}

{% hint style="warning" %}
Documentatie voor MongoDB 3.2 tot 4.2 is nu beschikbaar via <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Basisinstructies**

In de meeste gevallen vereist de update het instellen van een compatibiliteitsvlag voordat de mongo-versie daadwerkelijk wordt bijgewerkt. De stappen zijn als volgt:

1. Stel de compatibiliteitsvlag in zoals beschreven in de MongoDB-release-opmerkingen (zie de onderstaande voorbeelden).
2. Werk vervolgens de mongo-image bij:
   1. **Toolkit-gebruikers** Werk `MONGO_VERSION`, bijvoorbeeld `MONGO_VERSION=6.0`
   2. **Docker Compose-gebruikers** Werk de versie van de `mongo` image-tag bij,\
      bijv. `services -> mongo -> image: mongo:6.0`;

**Voorbeeld: MongoDB upgraden van `5.0` naar `6.0`**

Laten we beginnen met ervoor te zorgen dat we MongoDB draaien `6.0`:

Overleaf Toolkit-gebruikers:

```bash
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Docker Compose-gebruikers:

```bash
docker compose exec mongo mongod --version
# db version v5.0.24
```

Volgens de [upgrade-instructies](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), is de enige vereiste om te hebben `featureCompatibilityVersion` ingesteld op `5.0`. We doen dit door een MongoDB-shell te openen en het aangegeven commando uit te voeren:

Overleaf Toolkit-gebruikers:

```bash
bin/mongo
# MongoDB shell version v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

{% hint style="info" %}
Docker Compose-gebruikers kunnen `docker compose exec mongo mongosh` uitvoeren om een shell te openen en dezelfde commando's uit te voeren als Toolkit-gebruikers.
{% endhint %}

Overleaf Toolkit-gebruikers:

We stoppen vervolgens de Server CE/Server Pro- en MongoDB-instanties met behulp van het `bin/stop` commando, stellen `MONGO_VERSION=6.0` in `config/overleaf.rc`, en starten vervolgens de `mongo` service opnieuw met `bin/up mongo`) om te verifiëren dat de update soepel is verlopen.

Ten slotte werken we de imageversie van Server CE/Server Pro bij naar onze doelversie en maken we alle services opnieuw aan met behulp van het `bin/up -d` commando.

Docker Compose-gebruikers:

We stoppen vervolgens de Server CE/Server Pro- en MongoDB-instanties met behulp van het `docker compose stop` commando, werk het [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand bij om `image: mongo:6.0`, en starten vervolgens de `mongo` service opnieuw te starten met het `docker compose up mongo` commando om te verifiëren dat de update soepel is verlopen.

Ten slotte werken we de imageversie van Server CE/Server Pro bij naar onze doelversie en maken we alle services opnieuw aan met behulp van het `docker compose up` commando.

**Voorbeeld: MongoDB upgraden van `6.0` naar `7.0` (Toolkit-gebruikers)**

Begin door ervoor te zorgen dat je MongoDB draait `6.0` met behulp van de `mongod --version` commando's hierboven.

Volgens de [upgrade-instructies](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), is de enige vereiste om te hebben `featureCompatibilityVersion` ingesteld op `6.0`. We doen dit door een MongoDB-shell te openen en het commando `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Overleaf Toolkit-gebruikers:

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

We stoppen vervolgens de Server CE/Server Pro- en MongoDB-instanties met behulp van het `bin/stop` commando, stellen `MONGO_VERSION=7.0` in `config/overleaf.rc`, en starten vervolgens de `mongo` service opnieuw met `bin/up mongo`) om te verifiëren dat de update soepel is verlopen.

Ten slotte werken we de imageversie van Server CE/Server Pro bij naar onze doelversie en maken we alle services opnieuw aan met behulp van het `bin/up -d` commando.

**Voorbeeld: MongoDB upgraden van `7.0` naar `8.0` (Toolkit-gebruikers)**

Begin door ervoor te zorgen dat je MongoDB draait `7.0` met behulp van de `mongod --version` commando's hierboven.

Volgens de [upgrade-instructies](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), is de enige vereiste om te hebben `featureCompatibilityVersion` ingesteld op `7.0`. We doen dit door een MongoDB-shell te openen en het commando `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Merk op dat hiervoor nu een extra `confirm: true` parameter nodig is.

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

We stoppen vervolgens de Server CE/Server Pro- en MongoDB-instanties met behulp van het `bin/stop` commando, stellen `MONGO_VERSION=8.0` in `config/overleaf.rc`, en starten vervolgens de `mongo` service opnieuw met `bin/up mongo`) om te verifiëren dat de update soepel is verlopen.

Ten slotte werken we de imageversie van Server CE/Server Pro bij naar onze doelversie en maken we alle services opnieuw aan met behulp van het `bin/up -d` commando.

#### Gelijkwaardige commando's voor docker compose-gebruikers

Voor docker compose-gebruikers zijn de equivalente commando's:

* `docker compose exec mongo mongod --version` om de mongo-versie weer te geven
* `docker compose exec mongo mongosh` om een mongo-shell te starten voor beheercommando's
* `docker compose stop` commando om de server te stoppen
* Bewerk de [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand bij om `image: mongo:6.0` om de mongo-versie bij te werken
* `docker compose up mongo` om de mongo-service opnieuw te starten en te verifiëren dat de update soepel is verlopen
* Bewerk de [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand bij om `image: sharelatex:VERSION` om de imageversie te upgraden
* `docker compose up` om alle services opnieuw aan te maken.

### Een aangepaste rol maken

In versie `5.5.1`, introduceerden we een opstartcontrole om de featurecompatibiliteitsversie voor MongoDB te verifiëren. Als je MongoDB-database authenticatie gebruikt (bijv. basisauthenticatie), kan de `sharelatex` container mogelijk niet starten en een "*not authorized on admin to execute command*"-machtigingsfout weergeven.

Om dit op te lossen kun je ofwel een nieuwe rol aanmaken in MongoDB en deze toewijzen aan het gebruikersaccount dat wordt gebruikt om toegang te krijgen tot de database, volgens onderstaande instructies, of `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` instellen om de controle te laten mislukken zonder te voorkomen dat de implementatie wordt gestart.

{% hint style="success" %}
Deze nieuwe rol **alleen** geeft toestemming om serverparameters van MongoDB op clusterniveau te lezen en kan opnieuw worden gebruikt voor monitordoeleinden,
{% endhint %}

{% code overflow="wrap" %}

```bash
# Toolkit-gebruikers
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Schakel over naar de database "admin" met behulp van
overleaf [direct: primary] sharelatex> use admin
gewisseld naar db admin
overleaf [direct: primary] admin> 

# Maak een nieuwe rol aan met toestemming om "getParamter" te gebruiken. Kopieer en plak de onderstaande functie in de shell en druk op de return-toets

db.createRole(
  {
    role: "clusterParameterReader",
    privileges: [
      {
        resource: { cluster: true },
        actions: ["getParameter"]    
      }
    ],
    roles: [] 
  }
);

# Schakel terug naar de database "sharelatex" 
use sharelatex
gewisseld naar db sharelatex
overleaf [direct: primary] sharelatex> 

# Wijs de nieuwe "clusterParameterReader"-rol toe aan je databasegebruiker door de onderstaande functie te kopiëren en in de shell te plakken en op de return-toets te drukken 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Typ exit en druk vervolgens op return om de MongoDB-shell af te sluiten
# Voer bin/up -d uit om de deploymentstack te starten
$ bin/up -d
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/nl/onderhoud/updating-mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
