> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-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 aangeven in zijn [release-opmerkingen](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Moet ik MongoDB bijwerken?

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

Als je een MongoDB-versie gebruikt die nieuwer is dan de aanbevolen versie voor je huidige (of doel-)versie, hoef je geen wijzigingen aan te brengen.

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

Als je een specifiek probleem ervaart waarvan je denkt dat het verband kan houden met je huidige versie van MongoDB, voel je vrij om [een issue aan te maken](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 meteen de huidige versie moeten tonen.

Overleaf Toolkit-gebruikers:

```bash
bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build-info: {
    "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-info: {
    "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 versie van MongoDB 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 herstart de instantie.

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

{% hint style="danger" %}
Wanneer je een upgrade van Server CE/Pro uitvoert, raden we aan eerst bij te werken naar de nieuwste release van de geïmplementeerde hoofdversie **voordat** je upgradet naar de nieuwste release van de **volgende** hoofdversie. Als je implementatie meer dan één hoofdversie 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 volledige projectgeschiedenismigratie uit -> 4.2.9 -> 5.5.4.

Je zou **nooit** hoofdversies overslaan (3.5.10 -> 5.5.4). Als je de Toolkit gebruikt en meer dan één hoofdversie 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 om 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 upgrade naar een hoofdversie, zodat je kunt terugzetten 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 feature-compatibiliteitsversie</th><th align="center">Maximale versie ondersteund 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 feature-compatibiliteitsversie is gebaseerd op de overeenkomstige MongoDB-versie die wordt aanbevolen voor gebruik met de getoonde Overleaf-versie. Als je van plan bent een hogere versie te gebruiken, zal MongoDB zijn eigen minimumvereiste hebben.
{% endhint %}

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

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

#### MongoDB bijwerken

MongoDB vereist **stapsgewijze upgrades**. Dat betekent dat je niet direct van bijvoorbeeld `4.0` naar `5.0`. Je moet eerst updaten `4.2` naar `4.4`, en dan `5.0`.

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

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

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

* [MongoDB-release-opmerkingen - upgraden van MongoDB van `4.2` naar `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-release-opmerkingen - upgraden van MongoDB van `4.4` naar `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-release-opmerkingen - upgraden van MongoDB van `5.0` naar `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-release-opmerkingen - upgraden van MongoDB 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 - upgraden van MongoDB 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. Omdat Server Pro/CE 4.0.1+ transacties gebruikt, moet MongoDB als een 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 je daadwerkelijk de mongo-versie bijwerkt. 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 bij `MONGO_VERSION`, bijvoorbeeld `MONGO_VERSION=6.0`
   2. **Docker Compose-gebruikers** Werk de versie van de `mongo` image-tag bij,\
      bijvoorbeeld `services -> mongo -> image: mongo:6.0`;

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

Laten we beginnen met controleren of 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 dat `featureCompatibilityVersion` is ingesteld op `5.0`. Dit doen we 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 krijgen en dezelfde commando's uit te voeren als Toolkit-gebruikers.
{% endhint %}

Overleaf Toolkit-gebruikers:

Daarna stoppen we de Server CE/Server Pro- en MongoDB-instanties met het `bin/stop` commando, stel `MONGO_VERSION=6.0` in `config/overleaf.rc`, en herstart vervolgens de `mongo` service met behulp van `bin/up mongo`) om te controleren of de update soepel is verlopen.

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

Docker Compose-gebruikers:

Daarna stoppen we de Server CE/Server Pro- en MongoDB-instanties met het `docker compose stop` commando, werk bij [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand om te gebruiken `image: mongo:6.0`, en herstart vervolgens de `mongo` service met behulp van de `docker compose up mongo` commando om te controleren of de update soepel is verlopen.

Tot slot werken we de Server CE/Server Pro-imageversie 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 met controleren of 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 dat `featureCompatibilityVersion` is ingesteld op `6.0`. Dit doen we 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
```

Daarna stoppen we de Server CE/Server Pro- en MongoDB-instanties met het `bin/stop` commando, stel `MONGO_VERSION=7.0` in `config/overleaf.rc`, en herstart vervolgens de `mongo` service met behulp van `bin/up mongo`) om te controleren of de update soepel is verlopen.

Tot slot werken we de Server CE/Server Pro-imageversie 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 met controleren of 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 dat `featureCompatibilityVersion` is ingesteld op `7.0`. Dit doen we door een MongoDB-shell te openen en het commando `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Let op dat hiervoor nu een extra `confirm: true` parameter vereist is.

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

Daarna stoppen we de Server CE/Server Pro- en MongoDB-instanties met het `bin/stop` commando, stel `MONGO_VERSION=8.0` in `config/overleaf.rc`, en herstart vervolgens de `mongo` service met behulp van `bin/up mongo`) om te controleren of de update soepel is verlopen.

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

#### Vergelijkbare 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 admin-commando's
* `docker compose stop` commando om de server te stoppen
* Bewerk het [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand om te gebruiken `image: mongo:6.0` om de mongo-versie te upgraden
* `docker compose up mongo` om de mongo-service opnieuw te starten en te controleren of de update soepel is verlopen
* Bewerk het [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) bestand om te gebruiken `image: sharelatex:VERSION` om de imageversie te upgraden
* `docker compose up` om alle services opnieuw aan te maken.

### Een aangepaste rol aanmaken

In versie `5.5.1`, hebben we een opstartcontrole geïntroduceerd om de feature-compatibiliteitsversie voor MongoDB te verifiëren. Als je MongoDB-database authenticatie gebruikt (bijv. basisauthenticatie), kan de `sharelatex` container mogelijk niet starten en een "*niet geautoriseerd op admin om commando uit te voeren*"-machtigingsfout weergeven.

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

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

{% code overflow="wrap" %}

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

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

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

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

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

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

# Typ exit en druk op Enter om de MongoDB-shell te verlaten
# 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://ayakaleaf-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.
