ĂshtĂ« prezantuar versioni i sistemit tĂ« menaxhimit tĂ« tĂ« dhĂ«nave qĂ« Ă«shtĂ« i orientuar drejt dokumenteve, MongoDB 5.0, i cili zĂ« njĂ« pozicion ndĂ«rmjet sistemeve tĂ« shpejta dhe tĂ« shkallĂ«zueshme qĂ« menaxhojnĂ« tĂ« dhĂ«na nĂ« formatin çelĂ«s/vlerĂ« dhe sistemeve relacional, funksionale dhe tĂ« lehta pĂ«r formimin e pyetjeve. 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Ă« njĂ« licencĂ« e hapur, pasi pĂ«rmban njĂ« kĂ«rkesĂ« diskriminuese pĂ«r dorĂ«zimin nĂ«n licencĂ«n SSPL jo vetĂ«m tĂ« kodit tĂ« aplikacionit, por edhe tĂ« teksteve burimore tĂ« tĂ« gjitha komponentĂ«ve tĂ« pĂ«rfshirĂ« nĂ« ofrimin e shĂ«rbimit nĂ« re.
MongoDB mbështet ruajtjen e dokumenteve në formatin e ngjashëm me JSON, ka një gjuhë të mjaftueshme fleksibël për formimin e pyetjeve, mund të krijojë indekse për atribute të ndryshme të ruajtura, siguron ruajtjen efikase të objekteve të mëdha binarë, mbështet regjistrimin e operacioneve për ndryshimin dhe shtimin e të dhënave në DB, mund të punojë sipas paradigmës Map/Reduce, mbështet replikimin dhe ndërtimin e konfigurimeve të qëndrueshme ndaj dështimeve.
Në MongoDB ka mjete të ndërtuara për të siguruar segmentimin (shpërndarja e grupeve të të dhënave në servera mbi një çelës të caktuar), në kombinim me replikimin, që lejojnë ndërtimin e një klasteri ruajtjeje që është horizontalisht i shkallëzueshëm, në të cilin nuk ka një pikë të vetme dështimi (dështimi i çdo nodule nuk ndikon në funksionimin e DB), mbështetet rikuperimi automatik pas dështimit dhe transferimi i ngarkesës nga nodule që ka dalë jashtë funksionit. Zgjerimi i klasterit ose konvertimi i një serverë në klaster bëhet pa ndalur funksionimin e DB duke shtuar thjesht makina të reja.
Veçoritë e versionit të ri:
- Janë shtuar koleksionet për të dhënat në formën e serive temporale, të optimizuara për ruajtjen e grupeve të vlerave të parametrave që regjistrohen në intervale të caktuara kohore (koha dhe grupi i vlerave përkatëse të kohës). Nevoja për ruajtjen e të dhënave të tilla lind në sistemet e monitorimit, platformat financiare, sistemet e sondazhit të gjendjes së sensorëve. Puna me të dhënat e serive temporale bëhet si me koleksionet e zakonshme të dokumenteve, por indekset dhe metodat e ruajtjes për to janë optimizuar duke marrë parasysh lidhjen me kohën, gjë që lejon reduktimin e ndjeshëm të konsumit të hapësirës në disk, të zvogëlojë vonesat gjatë ekzekutimit të pyetjeve dhe të realizojë mundësinë e analizës së të dhënave në kohë reale.
MongoDB i konsideron këto koleksione si pamje të disponueshme për shkrim, të pa-materializuara, të krijuara mbi bazën e koleksioneve të brendshme dhe gjatë inserimit automatikisht grupojnë të dhënat e serive temporale në një format të optimizuar për ruajtje. Në këtë mënyrë, çdo shënim i lidhur me kohën gjatë pyetjes interpretohet si një dokument i veçantë. Të dhënat renditen dhe indeksohen automatikisht sipas kohës (nuk ka nevojë për krijimin e qartë të indekseve sipas kohës).
- Shtohet mbështetje për operatorët e dritareve (funksionet analitike), që lejojnë të kryhen veprime me një grup të caktuar dokumentesh në koleksion. Në ndryshim nga funksionet agregate, funksionet e dritareve nuk e përmbysin grupin e grumbulluar, por bëjnë agregimin në bazë të përmbajtjes së "dritares", e cila përfshin një ose më shumë dokumente nga grupi rezultues. Për manipulimin e një nën-grupi të dokumenteve është propozuar një fazë e re $setWindowFields, me ndihmën e së cilës mund, për shembull, të përcaktohen diferencat midis dy dokumenteve në koleksion, të llogaritet renditja e shitjeve dhe të analizohet informacioni në seri temporale komplekse.
- Shtohet mbështetje për versionimin e API, që lejon lidhjen e aplikacionit me një gjendje të caktuar të API dhe përjashton rreziqet e lidhura me mundësitë e prishjes së përputhshmërisë pasuese gjatë kalimit në lëshime të reja të DBMS. Versionimi i API ndan jetën e aplikacionit nga jeta e DBMS dhe i lejon zhvilluesit të bëjnë ndryshime në aplikacion kur ka lindur nevoja për të aktivizuar funksionalitete të reja, e jo kur bëhet kalimi në një version të ri të DBMS.
- Shtohet mbështetje për mekanizmin e Live Resharding, që lejon ndryshimin në fluturim të çelësave të përdorur për segmentimin (cheard key) pa ndërprerë DBMS.
- Zgjerohen mundësitë e enkriptimit të fushave nga ana e klientit (Client-Side Field Level Encryption). Rindërtohet mundësia e rregullimit të filtrave të audituar dhe rotacionit të certifikatave x509 pa ndaluar funksionimin e DBMS. Shtohet mbështetje për konfigurinë e grupit të çelësave për TLS 1.3.
- Propozohet njĂ« shell i ri pĂ«r komandat e MongoDB Shell (mongosh), i cili zhvillohet si njĂ« projekt i veçantĂ«, 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'u lidhur me DBMS, pĂ«r tĂ« ndryshuar konfigurimet dhe pĂ«r tĂ« dĂ«rguar kĂ«rkesa. MbĂ«shtetet auto-kompletimi inteligjent i hyrjeve tĂ« metodave, komandave dhe shprehjeve MQL, sintaksa e ndriçuar, ndihma kontekstuale, analizimi i mesazheve tĂ« gabimeve dhe mundĂ«sia e zgjerimit tĂ« funksionalitetit nĂ«pĂ«rmjet shtesave. Shell-i i vjetĂ«r CLI âmongoâ Ă«shtĂ« shpallur i vjetĂ«r dhe do tĂ« hiqet nĂ« lĂ«shimin e ardhshĂ«m.

- Shtohen operatorë të rinj: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate dhe $rand.
- Indeksat janë aktivizuar 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ë implementuar mbështetje për opsionin "let" për të përcaktuar listën e variablave, duke e bërë komandat më të lexueshme duke ndarë variablat nga tekstet e kërkesës.
- Operacionet find, count, distinct, aggregate, mapReduce, listCollections dhe listIndexes tani nuk bllokohen nëse një operacion po ekzekutohet paralelesh që vendos një bllokim ekskluziv në koleksionin e dokumenteve.
- Si pjesë e iniciativës për eliminimin e termave të papolitikisht korrekte, ekipi isMaster dhe metoda db.isMaster() u rinovuan në hello dhe db.hello().
- Shtylla e numrimit të lëshimeve është ndryshuar dhe është kaluar në një orar të parashikueshëm për lëshimet. Një herë në vit do të formohet një lëshim i rëndësishëm (5.0, 6.0, 7.0), një herë në tre muaj lëshime ndërmjetës me mundësi të reja (5.1, 5.2, 5.3) dhe sipas nevojës azhurnime korrigjuese me rregullime gabimesh dhe vulnerabilitetesh (5.1.1, 5.1.2, 5.1.3). Në lëshimet ndërmjetës 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

