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

# Uppdatera MongoDB

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

### Bör jag uppdatera MongoDB?

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

Om du kör en MongoDB-version som är nyare än den rekommenderade för din nuvarande (eller mål-)version finns det ingen anledning att 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 MongoDB-version, tveka inte att [skapa ett ärende](https://github.com/overleaf/overleaf/issues) om du är en Server CE-användare eller kontakta Overleaf Support om du är en Server Pro-användare.

### Kontrollera din MongoDB-version

Att öppna `mongo` skalet bör omedelbart skriva ut den aktuella versionen.

Overleaf Toolkit-användare:

```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-användare:

```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"
    }
}

```

### Uppdateringsprocess

Att uppdatera MongoDB-versionen när du uppgraderar din Server CE/Server Pro-instans går till så här:

1. Bestäm vilken version av Server CE/Server Pro du planerar att uppgradera till.
2. Hitta den version av MongoDB som rekommenderas av just den specifika Overleaf Server CE/Server Pro-utgåvan.
3. Följ instruktionerna för att uppgradera MongoDB till målversionen.
4. Uppgradera Server CE/Server Pro-avbildningens version 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 gör en uppgradering av Server CE/Pro rekommenderar vi att du uppgraderar till den senaste utgåvan av den installerade huvudversionen **innan** att uppgradera till den senaste utgåvan av den **nästa** huvudversionen. Om din installation 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 måste utföra en manuell uppgradering i flera steg.
{% endhint %}

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

#### Versionsstödinformation

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** 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 Overleaf-versionen. Om du planerar att använda en högre version kommer MongoDB att ha 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-statusen 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 MongoDB körs 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å en installation med replikeringsset, i stället för fristående. Eftersom Server Pro/CE 4.0.1+ använder transaktioner måste MongoDB köras som ett replikeringsset.
{% 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 sätter upp en kompatibilitetsflagga innan du faktiskt uppdaterar mongo-versionen. Stegen är följande:

1. Sätt 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` avbildningstaggen,\
      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`. Det gör vi genom att öppna ett MongoDB-skal och köra det angivna kommandot:

Overleaf Toolkit-användare:

```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-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:

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

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

Docker Compose-användare:

Därefter stoppar vi Server CE/Server Pro- och MongoDB-instanserna 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`in, 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 Server CE/Server Pro-avbildningens version 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`. Det gör vi 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
# bye
```

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

Slutligen uppdaterar vi Server CE/Server Pro-avbildningens version 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`. Det gör vi genom att öppna ett MongoDB-skal och köra kommandot `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Observera att detta nu kräver en extra `confirm: true` parameter.

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

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

Slutligen uppdaterar vi Server CE/Server Pro-avbildningens version 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 de motsvarande kommandona:

* `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` kommandot 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 avbildningsversionen
* `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 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 användarkontot som används för att få åtkomst till 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 klusteromfattande MongoDB-serverparametrar 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
switched to 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
switched to 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 trycka 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://overleaf-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.
