northdan.
Read this page in English

Tehnologii

MongoDB: baza de date pentru înregistrări care nu seamănă între ele

Potrivit când forma înregistrării chiar variază de la un rând la altul — și greșit acolo unde se numără bani sau stocuri.

Întrebarea care decide corect între MongoDB și o bază relațională e una singură: două înregistrări din același sistem au aceleași câmpuri sau nu? Un catalog în care fiecare categorie are alte atribute, un jurnal în care fiecare tip de eveniment poartă alte date — acolo tabelele se umplu de coloane goale, iar documentele nu.

MongoDB stochează datele ca documente, aproape în forma în care le folosește aplicația. Îl punem în cataloage eterogene, jurnale de evenimente, conținut cu forme multiple și în fazele de prototipare, unde schema încă se caută pe sine.

Definiția termenului NoSQL o lăsăm dicționarului. Aici discutăm decizia: ce câștigați, ce plătiți și în ce situație am refuza noi înșine să vi-l propunem.

Hai să vorbim despre proiectul tău

Scrie-ne pe WhatsApp sau trimite un email — vorbești direct cu un programator.

office@northdan.com · +40 752 070 247

Ce primești

Forma datelor rămâne forma reală

Produse cu atribute diferite pe categorie, formulare variate, evenimente eterogene: se stochează așa cum arată, fără coloane goale în tabel.

Schema se mișcă odată cu produsul

În fazele de explorare nu blocați livrarea pentru o migrare de structură la fiecare idee nouă, iar asta contează exact în primele luni.

Distribuirea pe servere e din arhitectură

Împărțirea datelor pe mai multe noduri e prevăzută în motor, nu adăugată ulterior: creșterea volumului are un traseu cunoscut.

Ieșire documentată

Primiți structura colecțiilor, indexurile și exportul complet; trecerea către alt motor sau alt furnizor nu depinde de noi.

Pentru ce folosim MongoDB

Patru situații, toate cu aceeași trăsătură: forma înregistrării variază. Cataloage unde fiecare categorie are alt set de atribute, fiindcă un pneu și o canapea nu se descriu cu aceleași câmpuri. Jurnale de evenimente, unde fiecare tip cară alt conținut și volumul crește repede. Conținut eterogen: pagini, fișe, materiale cu structuri diferite. Și faze de prototipare, când schema se schimbă săptămânal. Îl punem des lângă Node.js, unde documentul circulă prin aplicație fără traducere la fiecare strat.

Când NU alegem MongoDB — și ce alegem în loc

O condiție, dar netă: dacă sistemul numără bani, stocuri sau orice altceva care trebuie să iasă la fix, alegem PostgreSQL. Contabilitate, gestiune, facturare, decontări — orice are tranzacții stricte și rapoarte care leagă entități între ele. Acolo modelul relațional previne exact erorile pe care documentele le fac posibile. Pagina de comparație directă între cele două nu există încă la noi; până apare, criteriile utile se văd în comparația PostgreSQL–MySQL și în definiția din dicționar.

Ce putem arăta pe MongoDB

Un produs public al nostru pe MongoDB nu există, iar unul construit pe altceva nu devine dovadă doar pentru că ne-ar conveni. Ce avem sunt proiecte de client, cu cod care nu ne aparține. Dacă vreți să vedeți dacă știm ce facem, cereți o discuție tehnică: arătăm cum arată o colecție proiectată corect, unde am pus indexurile, ce am ales să dublăm în document și ce am ținut separat — acolo se câștigă sau se pierde un proiect pe documente.

Compromisurile reale: licența, modelarea și memoria

Trei costuri, în ordinea în care surprind. Licența: serverul se distribuie sub Server Side Public License, iar clauza ei distinctivă privește oferirea MongoDB însuși ca serviciu către terți, nu rularea lui în spatele propriei aplicații; textul e public pe mongodb.com. Modelarea: un model pe documente folosit greșit produce sisteme greu de interogat, iar greșeala se vede abia la primul raport cerut de conducere. Iar la dimensionare pornim de la memorie: factura crește cu indexurile și datele citite des, nu cu spațiul pe disc.

Cine o întreține după ce plecăm noi

MongoDB Server 8.0 are suport până pe 31 octombrie 2029, iar driverele publicate la mai mult de trei ani după încheierea suportului unei versiuni de server nu mai sunt compatibile cu ea, conform programului oficial de ciclu de viață publicat de MongoDB. Consecința practică: amânarea la nesfârșit a unui upgrade se plătește într-o zi în care biblioteca nouă pur și simplu nu se mai conectează. Tiparul recomandat la predare rămâne coexistența, cu partea tranzacțională ținută relațional.

Întrebări frecvente

Ce versiune de MongoDB ar trebui să rulăm?

MongoDB Server 8.0, suportată până pe 31 octombrie 2029. Versiunea 7.0 mai are termen până pe 31 august 2027 și e acceptabilă dacă migrarea nu încape acum în plan. Pe 6.0, al cărei suport s-a încheiat în iulie 2025, nu mai are rost să rămâneți.

Și pentru ce NU l-ați recomanda?

Pentru orice sistem în care cifra trebuie să iasă la fix: contabilitate, stocuri, facturare, decontări. Acolo cerințele sunt tranzacții stricte și rapoarte care leagă mai multe entități, iar un motor relațional le rezolvă din construcție. Recomandăm PostgreSQL fără ezitare.

MongoDB poate coexista cu o bază relațională?

Da, și e tiparul pe care îl aplicăm cel mai des: partea tranzacțională în PostgreSQL, jurnalele și cataloagele variabile în MongoDB, iar aplicația le pune cap la cap. Fiecare motor face ce știe, fără să forțăm unul singur să facă tot.

Ce înseamnă licența SSPL pentru firma noastră?

MongoDB Server se distribuie sub Server Side Public License. Clauza care o face specială vizează situația în care oferiți MongoDB însuși ca serviciu către terți; a-l rula ca bază de date în spatele propriei aplicații nu intră acolo. Textul e public, iar întrebarea se pune juridicului vostru.

Cât costă o aplicație construită pe MongoDB?

Nu motorul de date mută prețul, ci numărul de ecrane, integrările și volumul de date de migrat din sistemul vechi. Benzile orientative pentru aplicații web, cu scopul fiecărei trepte scris lângă ea, sunt în ghidul nostru de costuri.