> 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/sv/underhall/updating-mongodb.md).

# Uppdatera MongoDB

{% hint style="info" %}
Alla nya utgåvor av Server CE/Server Pro kommer att ange alla ändringar i den version av MongoDB som stöds i sina [versionsanteckningar](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Ska jag uppdatera MongoDB?

Du bör **endast** överväga att uppdatera din MongoDB-version om du planerar att uppgradera din instans av Server CE/Server Pro.

Om du kör en MongoDB-version som är nyare än den som rekommenderas för din nuvarande (eller mål-) version behöver du inte göra några ändringar.

{% hint style="warning" %}
Du bör aldrig nedgradera din MongoDB-version.
{% endhint %}

Om du upplever ett specifikt problem som du tror kan vara relaterat till din nuvarande version av MongoDB, får du gärna [rapportera ett ärende](https://github.com/overleaf/overleaf/issues) om du är en Server CE-användare eller kontakta Overleaf-supporten om du är en Server Pro-användare.

### Kontrollerar din MongoDB-version

När du öppnar `mongo` skalet ska den aktuella versionen visas direkt.

Overleaf Toolkit-användare:

```bash
bin/docker-compose exec mongo mongod --version
db-version v5.0.24
Bygginfo: {
    "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-användare:

```bash
docker compose exec mongo mongod --version
db-version v5.0.24
Bygginfo: {
    "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"
    }
}

```

### Uppdateringsprocess

Uppdatering av versionen av MongoDB under en uppgradering av din Server CE/Server Pro-instans går till enligt följande:

1. Bestäm vilken version av Server CE/Server Pro du planerar att uppgradera till.
2. Hitta den MongoDB-version som rekommenderas av just den specifika utgåvan av Overleaf Server CE/Server Pro.
3. Följ instruktionerna för att uppgradera MongoDB till målversionen.
4. Uppgradera bildversionen för Server CE/Server Pro och starta om instansen.

Vår rekommendation är att alltid uppgradera **Server CE/Server Pro** till den senaste tillgängliga versionen, eftersom den alltid garanterat stöds (endast Server Pro-användare).

{% hint style="danger" %}
När du uppgraderar Server CE/Pro rekommenderar vi att du uppgraderar till den senaste utgåvan av den distribuerade huvudversionen **innan** du uppgraderar till den senaste utgåvan av **nästa** huvudversionen. Om din distribution ligger mer än en huvudversion efter den senaste måste du genomföra en uppgradering i flera steg.

Till exempel, om du kör 3.5.10 måste du uppgradera till 3.5.13 -> Utför migreringen av Full Project History -> 4.2.9 -> 5.5.4.

Du bör **aldrig** hoppa över huvudversioner (3.5.10 -> 5.5.4). Om du använder Toolkit och ligger mer än en huvudversion efter den senaste måste du **inte** använda `bin/upgrade` skriptet eftersom du kommer att behöva genomföra en manuell uppgradering i flera steg.
{% endhint %}

{% hint style="warning" %}
Det är viktigt att se till att du tar en [konsistent säkerhetskopia](/on-premises/sv/underhall/data-and-backups.md#performing-a-consistent-backup) **innan** vid varje uppgradering av huvudversion, så att du kan rulla tillbaka om det behövs.
{% endhint %}

#### Versionsstödsinformation

Om du bestämmer dig för att gå till en tidigare version visar den här tabellen den rekommenderade MongoDB-versionen för tidigare utgåvor av Server CE/Server Pro, men du bör **aldrig** nedgradera din MongoDB-version.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB-version</th><th align="center">Minsta Feature Compatibility Version</th><th align="center">Högsta version som stöds av Node.js-drivrutinen</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 till 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" %}
Den lägsta feature compatibility-versionen ovan baseras på den motsvarande MongoDB-version som rekommenderas för användning med den visade versionen av Overleaf. Om du planerar att använda en högre version har MongoDB sitt eget minimikrav.
{% endhint %}

Du kan se kompatibilitetstabellen som anger de versioner av MongoDB Node.js-drivrutinen som stöds för användning med MongoDB [här](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Du kan se end-of-life-status för varje version av MongoDB [här](https://endoflife.date/mongodb).

#### Uppgradering av MongoDB

MongoDB kräver **uppgraderingar steg för steg**. Det betyder att du inte kan gå direkt från, säg `4.0` till `5.0`. Du måste först uppdatera `4.2` till `4.4`, och sedan `5.0`.

{% hint style="info" %}
MongoDB använder jämna nummer för sina stabila versioner.
{% endhint %}

#### **Uppdateringsinstruktioner när du kör MongoDB utanför Docker**

Här är länkar till uppdateringsinstruktionerna från mongodb.com när du uppgraderar MongoDB.

* [MongoDB:s versionsanteckningar - uppgradering av MongoDB från `4.2` till `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB:s versionsanteckningar - uppgradering av MongoDB från `4.4` till `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB:s versionsanteckningar - uppgradering av MongoDB från `5.0` till `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB:s versionsanteckningar - uppgradering av MongoDB från `6.0` till `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB:s versionsanteckningar - uppgradering av MongoDB från `7.0` till `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" %}
Instruktioner för `5.0` och högre pekar på installation som replikeringsuppsättning i stället för fristående. Eftersom Server Pro/CE 4.0.1+ använder transaktioner måste MongoDB köras som en replikeringsuppsättning.
{% endhint %}

{% hint style="warning" %}
Dokumentation för MongoDB 3.2 till 4.2 finns nu tillgänglig via <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Grundläggande instruktioner**

I de flesta fall kräver uppdateringen att du ställer in en kompatibilitetsflagga innan du faktiskt uppdaterar mongo-versionen. Stegen är som följer:

1. Ställ in kompatibilitetsflaggan enligt beskrivningen i MongoDB:s versionsanteckningar (se exemplen nedan).
2. Uppdatera sedan mongo-avbildningen:
   1. **Toolkit-användare** Uppdatera `MONGO_VERSION`, t.ex. `MONGO_VERSION=6.0`
   2. **Docker Compose-användare** Uppdatera versionen av `mongo` bildtaggen,\
      t.ex. `services -> mongo -> image: mongo:6.0`;

**Exempel: Uppgradering av MongoDB från `5.0` till `6.0`**

Låt oss börja med att se till att vi kör MongoDB `6.0`:

Overleaf Toolkit-användare:

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

Docker Compose-användare:

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

Enligt [uppgraderingsinstruktionerna](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), är det enda kravet att ha `featureCompatibilityVersion` satt till `5.0`. Vi gör detta genom att öppna ett MongoDB-skal och köra det angivna kommandot:

Overleaf Toolkit-användare:

```bash
bin/mongo
# MongoDB-skalversion v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# hej då
```

{% hint style="info" %}
Docker Compose-användare kan köra `docker compose exec mongo mongosh` för att få ett skal och köra samma kommandon som Toolkit-användare.
{% endhint %}

Overleaf Toolkit-användare:

Sedan stoppar vi instanserna av Server CE/Server Pro och MongoDB med hjälp av `bin/stop` kommandot, ställer in `MONGO_VERSION=6.0` i `config/overleaf.rc`, och startar sedan om `mongo` tjänsten med `bin/up mongo`) för att verifiera att uppdateringen gick smidigt.

Slutligen uppdaterar vi bildversionen för Server CE/Server Pro till vår målversion och återskapar alla tjänster med hjälp av `bin/up -d` kommandot.

Docker Compose-användare:

Sedan stoppar vi instanserna av Server CE/Server Pro och MongoDB med hjälp av `docker compose stop` kommandot, uppdatera [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen så att den använder `image: mongo:6.0`, och startar sedan om `mongo` tjänsten med hjälp av `docker compose up mongo` kommandot för att verifiera att uppdateringen gick smidigt.

Slutligen uppdaterar vi bildversionen för Server CE/Server Pro till vår målversion och återskapar alla tjänster med hjälp av `docker compose up` kommandot.

**Exempel: Uppgradering av MongoDB från `6.0` till `7.0` (Toolkit-användare)**

Börja med att se till att du kör MongoDB `6.0` med hjälp av `mongod --version` kommandona ovan.

Enligt [uppgraderingsinstruktionerna](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), är det enda kravet att ha `featureCompatibilityVersion` satt till `6.0`. Vi gör detta genom att öppna ett MongoDB-skal och köra kommandot `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Overleaf Toolkit-användare:

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

Sedan stoppar vi instanserna av Server CE/Server Pro och MongoDB med hjälp av `bin/stop` kommandot, ställer in `MONGO_VERSION=7.0` i `config/overleaf.rc`, och startar sedan om `mongo` tjänsten med `bin/up mongo`) för att verifiera att uppdateringen gick smidigt.

Slutligen uppdaterar vi bildversionen för Server CE/Server Pro till vår målversion och återskapar alla tjänster med hjälp av `bin/up -d` kommandot.

**Exempel: Uppgradering av MongoDB från `7.0` till `8.0` (Toolkit-användare)**

Börja med att se till att du kör MongoDB `7.0` med hjälp av `mongod --version` kommandona ovan.

Enligt [uppgraderingsinstruktionerna](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), är det enda kravet att ha `featureCompatibilityVersion` satt till `7.0`. Vi gör detta genom att öppna ett MongoDB-skal och köra kommandot `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Observera att detta nu kräver en ytterligare `confirm: true` parameter.

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

Sedan stoppar vi instanserna av Server CE/Server Pro och MongoDB med hjälp av `bin/stop` kommandot, ställer in `MONGO_VERSION=8.0` i `config/overleaf.rc`, och startar sedan om `mongo` tjänsten med `bin/up mongo`) för att verifiera att uppdateringen gick smidigt.

Slutligen uppdaterar vi bildversionen för Server CE/Server Pro till vår målversion och återskapar alla tjänster med hjälp av `bin/up -d` kommandot.

#### Motsvarande kommandon för Docker Compose-användare

För Docker Compose-användare är motsvarande kommandon:

* `docker compose exec mongo mongod --version` för att visa mongo-versionen
* `docker compose exec mongo mongosh` för att starta ett mongo-skal för admin-kommandon
* `docker compose stop` kommando för att stoppa servern
* Redigera [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen så att den använder `image: mongo:6.0` för att uppgradera mongo-versionen
* `docker compose up mongo` för att starta om mongo-tjänsten och verifiera att uppdateringen gick smidigt
* Redigera [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen så att den använder `image: sharelatex:VERSION` för att uppgradera bildversionen
* `docker compose up` för att återskapa alla tjänster.

### Skapa en anpassad roll

I version `5.5.1`, införde vi en startkontroll för att verifiera feature compatibility-versionen för MongoDB. Om din MongoDB-databas använder autentisering (t.ex. grundläggande autentisering) kan `sharelatex` containern kanske inte starta och visa ett "*inte auktoriserad på admin för att köra kommandot*"-behörighetsfel.

För att lösa detta kan du antingen skapa en ny roll i MongoDB och tilldela den till det användarkonto som används för att komma åt databasen enligt instruktionerna nedan, eller ange `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` för att tillåta att kontrollen misslyckas utan att hindra distributionen från att starta.

{% hint style="success" %}
Den här nya rollen **endast** ger behörighet att läsa klusterövergripande serverparametrar för MongoDB och kan återanvändas för övervakningsändamål,
{% endhint %}

{% code overflow="wrap" %}

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

# Växla till databasen "admin" med hjälp av
overleaf [direct: primary] sharelatex> use admin
växlade till db admin
overleaf [direct: primary] admin> 

# Skapa en ny roll med behörighet att använda "getParamter". Kopiera och klistra in funktionen nedan i skalet och tryck på returtangenten

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

# Växla tillbaka till databasen "sharelatex" 
use sharelatex
växlade till db sharelatex
overleaf [direct: primary] sharelatex> 

# Tilldela den nya rollen "clusterParameterReader" till din databasanvändare genom att kopiera och klistra in funktionen nedan i skalet och tryck på returtangenten 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Skriv exit och tryck sedan på returtangenten för att avsluta MongoDB-skalet
# Kör bin/up -d för att starta distributionsstacken
$ 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/sv/underhall/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.
