Është publikuar versioni i databazës dokument-orientuese MongoDB 5.0, e cila zë një niçë në mes sistemeve të shpejtë dhe të shkallëzueshme që punojnë me të dhëna në formatin çelës/vlerë, dhe databazave relacionale, funksionale dhe të lehta për të formuar pyetje. Kodi i MongoDB është shkruar në gjuhën C++ dhe shpërndahet nën licencën SSPL, e cila bazohet në licencën AGPLv3, por nuk është e hapur, pasi përmban një kërkesë diskriminuese për shpërndarjen nën licencën SSPL, jo vetëm të kodit të vetë aplikacionit, por edhe të burimeve të të gjithë komponenteve që janë të angazhuara në ofrimin e shërbimit të cloud.
MongoDB mbështet ruajtjen e dokumenteve në formatin JSON të ngjashëm, ka një gjuhë mjaft fleksibile për formimin e pyetjeve, mund të krijojë indekse për atributet e ndryshme të ruajtura, siguron në mënyrë efikase ruajtjen e objekteve të mëdha binare, mbështet regjistrimin e operacioneve për ndryshimin dhe shtimin e të dhënave në databazë, mund të punojë në përputhje me paradigmat Map/Reduce, mbështet replikimin dhe ndërtimin e konfiguracioneve me qëndrueshmëri në rast defekti.
Në MongoDB ka mjete të integruara për sigurinë e segmentimit (distribuimi i të dhënave mbi servera bazuar në një çelës të caktuar), në kombinim me replikimin, që lejojnë ndërtimin e një klasteri ruajtjeje horizontalisht të shkallëzueshëm, në të cilin nuk ka një pikë të vetme dështimi (dështimi i çdo nyje nuk ndikon në funksionimin e databazës), mbështetet rivendosja automatikisht pas dështimit dhe transferimi i ngarkesës nga nyja e dëmtuar. Zgjerimi i klasterit ose transformimi i një nyje në klaster bëhet pa ndalur funksionimin e databazës me anë të thjeshtë të shtimit të makinave të reja. server в кластер производится без остановки работы БД простым добавлением новых машин.
Karakteristikat e lëshimit të ri:
- Janë shtuar koleksione për të dhënat në formën e serive temporale (time series collections), të optimizuara për ruajtjen e pikave të vlerave parametrave që regjistrohen në intervale të caktuara kohore (kohë dhe grupi i vlerave përkatëse për atë kohë). Nevoja për ruajtjen e të dhënave të tilla lind në sistemet e monitorimit, platformave financiare dhe sistemeve për anketimin e gjendjeve të sensorëve. Puna me të dhënat e serive temporale bëhet si me koleksionet e zakonshme të dokumenteve, por indeksat dhe metoda e ruajtjes për to janë optimizuar në përputhje me lidhjen me kohën, çka lejon të reduktohet ndjeshëm konsumimi i hapësirës në disk, të zvogëlohen vonesat gjatë ekzekutimit të kërkesave dhe të zbatohet mundësia e analizës së të dhënave në kohë reale.
MongoDB i konsideron këto koleksione si pamje të pashfaqura që janë krijuar mbi bazën e koleksioneve të brendshme dhe gjatë futjes automatikisht grupon të dhënat e serive temporale në një format të optimizuar për ruajtje. Në këtë rast, çdo regjistrim i lidhur me kohën trajtohet si një dokument i veçantë gjatë kërkesës. Të dhënat renditen dhe indeksohen automatikisht sipas kohës (nuk ka nevojë për krijimin e indekseve të qarta sipas kohës).
- Janë shtuar mbështetje për operatorët dritarë (funksione analitik), që lejojnë kryerjen e veprimeve mbi një grup të caktuar dokumentesh në koleksion. Ndryshe nga funksionet agregate, funksionet dritarë nuk reduktojnë grupin e grumbulluar, por kryejnë agregimin mbi bazën e përmbajtjes së "dritares", që përfshin një ose më shumë dokumente nga grupi rezultatues. Për manipulimin e një nënseti dokumentesh, është propozuar një fazë e re $setWindowFields, me anë të së cilës mund të përcaktohen dallimet midis dy dokumenteve në koleksion, të llogaritet një vlerësim të shitjeve dhe të analizohet informacioni në seritë temporale komplekse.
- Janë shtuar mbështetje për versionimin e API, që lejon lidhjen e aplikacionit me një gjendje të caktuar të API dhe përjashton rreziqet që lidhen me mundësinë e shkeljes së përputhshmërisë pas përmirësimi në versionet e reja të databazës. Versionimi i API ndan ciklin e jetës së aplikacionit nga cikli i jetës së databazës dhe i lejon zhvilluesve të bëjnë ndryshime në aplikacion kur lind nevoja për të shfrytëzuar mundësitë e reja, e jo kur ndodh kalimi në një version të ri të databazës.
- Janë shtuar mbështetje për mekanizmin Live Resharding, që lejon ndërrimin e çelive të përdorur për segmentimin e të dhënave (shard key) në mënyrë dinamike pa ndaluar databazën.
- Janë zgjeruar mundësitë e enkriptimit të fushave në anën e klientit (Client-Side Field Level Encryption). Ka ndodhur mundësia e rimarrjes së filtrave të auditit dhe rotacionit të certifikatave x509 pa ndalur funksionimin e databazës. Janë shtuar mbështetje për konfigurimin e grupit të çelësave për TLS 1.3.
- Është propozuar njëShell komandash i ri i MongoDB (mongosh), i cili zhvillohet si një projekt i veçantë, i shkruar në JavaScript duke përdorur platformën Node.js dhe shpërndahet nën licencën Apache 2.0. MongoDB Shell ofron mundësinë për të lidhur me DBMS, për të ndryshuar parametrat dhe për të dërguar kërkesa. Mbështetet autocomplete e mençur për futjen e metodave, komandave dhe shprehjeve MQL, ndriçimi i sintaksës, sugjerimi kontekstual, analiza e mesazheve të gabimeve dhe mundësia për zgjerimin e funksionalitetit përmes shtesave. Shell-i i vjetër CLI "mongo" është shpallur i vjetër dhe do të hiqet në versionin e ardhshëm.

- Janë shtuar operatorë të rinj: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate dhe $rand.
- Është siguruar përdorimi i indekseve kur përdoren operatorët $eq, $lt, $lte, $gt dhe $gte brenda shprehjes $expr.
- Në komandat aggregate, find, findAndModify, update, delete dhe metodat db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() dhe db.collection.remove() është realizuar mbështetje për opsionin "let" për të përcaktuar një listë ndryshore, duke e bërë komandat më të lexueshme duke ndarë variablat nga teksti i kërkesës.
- Operacionet find, count, distinct, aggregate, mapReduce, listCollections dhe listIndexes tani nuk bllokohen nëse ekzekutohet një operacion tjetër që vendos një bllokadë ekskluzive në koleksionin e dokumenteve.
- Në kuadër të iniciativës për t'u liruar nga terminologjia e papërshtatshme, ekipi isMaster dhe metoda db.isMaster() janë rinovuar në hello dhe db.hello().
- Është ndryshuar skema e numërimit të versioneve dhe është bërë kalimi në një orar të parashikueshëm për formimin e lëshimeve. Një version i rëndësishëm do të formohet çdo vit (5.0, 6.0, 7.0), çdo tre muaj do të lëshohen versione ndërmjetësore me mundësi të reja (5.1, 5.2, 5.3) dhe sipas nevojës për azhurnime korrigjente për rregullimet e gabimeve dhe vulnerabilitetet (5.1.1, 5.1.2, 5.1.3). Në versionet ndërmjetësore do të formohet funksionaliteti për lëshimin e ardhshëm të rëndësishëm, pra në MongoDB 5.1, 5.2 dhe 5.3 do të formohen mundësi të reja për lëshimin MongoDB 6.0.
Burimi: opennet.ru

