MongoDB eller PostgreSQL?

Af Weapp · Opdateret

PostgreSQL med JSONB dækker i dag mange af de tilfælde man tidligere valgte MongoDB til, samtidig med at du beholder relationer og transaktioner. MongoDB har stadig sine styrker i horisontal skalering over mange servere og ægte skemafrihed. Tag udgangspunkt i Postgres, og vælg Mongo når dokumentmodellen og skalaen virkelig begrunder det.

MongoDB over for PostgreSQL er ikke samme slags valg som mellem to databaser af samme type. Det er et vejvalg mellem to paradigmer: dokumenter over for relationer. Har du allerede kæmpet med SQL over for NoSQL, kender du spørgsmålet, men her får det konkrete produktnavne, og svaret har flyttet sig de seneste år. Sådan står det i 2026.

Postgres JSONB har flyttet grænsen

Længe var argumentet for MongoDB enkelt: Relationsdatabaser tvang dig ind i et stift skema, og havde du brug for fleksible dokumenter, måtte du gå til en dokumentdatabase. Det argument er blevet svagere.

PostgreSQL kan i dag lagre og søge i JSON-dokumenter via JSONB, effektivt og med god performance. I praksis betyder det at du kan blande i samme database: strukturerede tabeller med relationer i kernen og dokumentlignende felter der hvor dataene virkelig skal være fleksible. Mange produkter der tidligere ville have valgt MongoDB for fleksibilitetens skyld, klarer sig i dag fint på Postgres uden at opgive transaktioner og relationer for resten af dataene.

Det er den vigtigste enkeltændring i denne sammenligning. Postgres har ædt sig ind på det der var MongoDB’s hjemmebane.

Hvad MongoDB stadig har

Men MongoDB er ikke blevet overflødig. Der er stadig klare tilfælde hvor dokumentmodellen og Mongos arkitektur vinder.

  • Horisontal skalering for alvor. MongoDB er bygget fra bunden til at blive spredt over mange servere og sluge meget store datamængder. Har du virkelig brug for at skalere bredt ud, er det en af dens stærkeste sider.
  • Ægte skemafrihed. Når dataenes struktur varierer så kraftigt mellem poster at et skema bliver en spændetrøje, passer en rendyrket dokumentdatabase bedre end at strække en relationsmodel.
  • Dokumenter som den naturlige form. Når data grundlæggende er selvstændige dokumenter der sjældent skal kobles sammen med andre data, ligger Mongos model tæt på den måde du alligevel tænker på dataene.

Pointen er at det er specifikke styrker, ikke generelle. JSONB i Postgres er nok til moderat dokumentfleksibilitet; Mongo kommer til sin ret når dokumenterne og skalaen er selve kernen i produktet.

Licens- og driftsmodeller

Ud over paradigmet er der også forskel på hvordan databaserne køres og licenseres, og det er værd at tage med i overvejelserne.

AspektMongoDB / PostgreSQL
Managed cloudtjenesteAtlas (Mongo) over for managed Postgres hos stort set alle clouds
LeverandørafhængighedMongo styres af én virksomhed; Postgres er bredt uafhængig
KompetencerBrede for Postgres, findes for Mongo

Atlas er MongoDB’s egen cloudtjeneste hvor leverandøren står for drift og skalering for jer. Tilsvarende tilbydes managed Postgres af alle store cloududbydere. Begge fjerner driftsbyrden. En forskel der er værd at bemærke, er at Postgres er bredt uafhængig og understøttes af mange aktører mens MongoDB’s retning styres af en enkelt virksomhed og dens licensvalg. Det er noget at have i baghovedet med tanke på fastlåsning på lang sigt.

Typiske projektprofiler

Så hvilket valg passer til hvilket projekt? Et par almindelige profiler:

  • Blandede forretningsdata, dvs. kunder, ordrer og fakturaer med tydelige relationer plus enkelte fleksible felter: PostgreSQL, gerne med JSONB til de variable dele.
  • En enorm mængde selvstændige dokumenter der skal skaleres bredt og sjældent kobles sammen med andre data: Her kommer MongoDB til sin ret.
  • Usikker og kraftigt varierende struktur i en tidlig fase: Dokumentmodellen kan give fart, men tag med i betragtning at Postgres JSONB ofte er nok.

En almindelig fejl er at vælge Mongo tidligt “for fleksibilitetens skyld” og derefter skulle bygge relationer i hånden når dataene alligevel viser sig at hænge sammen. Har du blandede behov, er Postgres som regel det valg der tilgiver mest.

Sådan vælger du

Tag udgangspunkt i PostgreSQL. Med JSONB dækker den både strukturerede og en hel del dokumentlignende data, og den er tilgivende når kravene ændrer sig. Vælg MongoDB bevidst når dokumentmodellen og den horisontale skala virkelig er kernen i det du bygger, ikke som standardvalg.

Vil I have hjælp til at vælge den rigtige database til netop jeres produkt, ser vi hos Weapp gerne på datamodellen som en del af systemarbejdet. Kontakt os, så drøfter vi valget før det sætter sig fast i koden.

Ofte stillede spørgsmål

Hvad er den grundlæggende forskel på MongoDB og PostgreSQL?

De repræsenterer to paradigmer. PostgreSQL er en relationsdatabase: data i tabeller med fast skema og relationer imellem dem. MongoDB er en dokumentdatabase: Data lagres som selvstændige dokumenter med fleksibel struktur. Forskellen afgør hvordan du modellerer data og hvad databasen giver dig gratis i form af konsistens, forespørgsler og skalering.

Hvad er JSONB, og hvorfor betyder det noget her?

JSONB er PostgreSQL’s måde at lagre og søge i JSON-dokumenter effektivt, direkte i en relationsdatabase. Det betyder at du kan få dokumentlignende fleksibilitet til de dele der har brug for det mens resten af dataene forbliver strukturerede med relationer og transaktioner. Det dækker mange af de behov der tidligere førte til valget af MongoDB.

Hvornår er MongoDB det rigtige valg?

Når data naturligt er dokumenter der sjældent skal kobles sammen med andre data, når skemaet virkelig varierer kraftigt mellem poster, eller når du har brug for at sprede enorme datamængder horisontalt over mange servere. Det er rendyrkede styrker. Er behovet derimod blandet, med både dokumenter og relationer, hælder det ofte mod Postgres og dens JSONB.

Hvad er forskellen på Atlas og managed Postgres?

Atlas er MongoDB’s egen cloudtjeneste hvor leverandøren står for drift, skalering og backup af jeres Mongo-database. Managed Postgres er den tilsvarende løsning for PostgreSQL og tilbydes af stort set alle cloududbydere. Begge sparer jer for driftsarbejde. Forskellen ligger mere i databaseparadigmet og licensmodellen end i selve bekvemmeligheden.

Kan man bruge begge i samme system?

Ja, det forekommer. En relationsdatabase kan bære kerneforretningsdata mens en dokumentdatabase håndterer en del hvor skemaet virkelig varierer. Men tilføj ikke et andet databaseparadigme uden grund, for hvert ekstra system koster drift og kompetencer. Ofte rækker Postgres alene længere end man tror, takket være JSONB.