Esitatud dokumentide suunaga andmebaasi MongoDB 5.0 vĂ€ljaanne, mis asub kiiresti ja skaleeritavalt töötavate vĂ”tmevÀÀrtuse sĂŒsteemide ning relatsiooniliste andmebaaside vahel, mis on funktsionaalsed ja mugavad pĂ€ringute koostamisel. MongoDB kood on kirjutatud C++ keeles ja jagatakse SSPL litsentsi alusel, mis pĂ”hineb AGPLv3 litsentsil, kuid ei ole avatud, kuna see sisaldab diskrimineerivat nĂ”udmist, et SSPL litsentsi alla peab andma mitte ainult rakenduse koodi, vaid ka kĂ”igi komponentide lĂ€htekoodid, mis osalevad pilveteenuse osutamises.
MongoDB toetab dokumentide salvestamist JSON-sarnases formaadis, omab piisavalt paindlikku keelt pÀringute koostamiseks, suudab luua indekseid erinevate salvestatud atribuutide jaoks, tÔhusalt tagab suurte binaarsete objektide salvestamise, toetab operatsioonide ajalugu andmete muutmise ja lisamise kohta andmebaasis, vÔib töötada Map/Reduce paradigma kohaselt, toetab replikatsiooni ja talitlushÀirekindlate konfiguratsioonide loomist.
MongoDB-s on sisseehitatud vahendid segmenteerimise tagamiseks (datasets jaotus serverite vahel teatud vĂ”tme alusel), koos replikatsiooniga, mis vĂ”imaldavad luua horisontaalselt skaleeritava salvestusklastri, kus puudub ĂŒhtegi veakohta (kuna ĂŒhe sĂ”lme rike ei mĂ”juta andmebaasi tööd), toetatakse automaatset taastumist rikke jĂ€rel ja koormuse ĂŒleviimist vĂ€ljalangenud sĂ”lmest. Klasteri laiendamine vĂ”i ĂŒhte serverilt klastrisse ĂŒleminek toimub ilma andmebaasi tööd peatamata, lihtsalt uusi masinad lisades.
Uue vÀljaande omadused:
- Lisatud on ajaseeria kogud (time series collections), optimeeritud ajavahemike jooksul salvestatud parameetrite vÀÀrtuste lĂ”ikude hoidmiseks (aeg ja sellega seotud vÀÀrtuste komplekt). Sarnaste andmete hoidmise vajadus tekib jĂ€lgimissĂŒsteemides, finantsplatvormidel, sensorite olekute kĂŒsitlemise sĂŒsteemides. Aja seeria andmete töötlemine toimub nagu tavaliste dokumentide kogudega, kuid indeksid ja salvestamismeetodid on optimeeritud ajaga seotud arvestamiseks, mis vĂ”imaldab oluliselt vĂ€hendada kettaruumikasutust, vĂ€hendada pĂ€ringute tĂ€itmise viivitusi ja vĂ”imaldada andmete analĂŒĂŒsi reaalajas.
MongoDB kÀsitleb selliseid kogusid kirjutamiseks saadaval olevate mitte-materiaalse tellimustena, mis on loodud sisemiste kogude pÔhjal ja mis ridade sisestamisel automaatselt gruppivad ajaseeria andmeid optimeeritud salvestusformaatidesse. Iga ajaga seotud kirje tÔlgendatakse pÀringus eraldi dokumendina. Andmed on automaatselt jÀrjestatud ja indekseeritud ajaliselt (pole vajalik ajaga seotud indeksite selge loomine).
- Lisatud on aknafunktsioonide (analĂŒĂŒtiliste funktsioonide) tugi, mis vĂ”imaldab teostada toiminguid teatud dokumendihulgaga kogu kollektsioonis. Erinevalt agregaatfunktsioonidest ei koonda akna funktsioonid rĂŒhmitatud hulki, vaid teevad agregatsiooni âaknaâ sisu pĂ”hjal, mis sisaldab ĂŒhte vĂ”i enamat dokumenti tulemushulgast. Dokumentide alamhulgaga manipuleerimiseks on pakutud uus etapp $setWindowFields, mille abil saab nĂ€iteks mÀÀrata erinevusi kahe dokumendi vahel kollektsioonis, arvutada mĂŒĂŒgitooted ja analĂŒĂŒsida teavet keerulistes ajaseeriate seas.
- Lisatud on API versioneerimise tugi, mis vĂ”imaldab siduda rakenduse kindla API olekuga ja vĂ€hendada riske, mis on seotud tagasipöördumatuse rikkumisega uutele andmebaasi vĂ€ljaannetele ĂŒleminekul. API versioneerimine eraldab rakenduse elutsĂŒkli andmebaasi elutsĂŒklist ja vĂ”imaldab arendajatel rakenduses muudatusi teha siis, kui on vaja kasutada uusi vĂ”imalusi, mitte siis, kui toimub ĂŒleminek uuele andmebaasi versioonile.
- Lisatud on Live Reshardingu mehhanismi tugi, mis vÔimaldab jooksvalt muuta kasutatavaid segmentimise vÔtmeid (shard key) ilma andmebaasi seiskamiseta.
- Kliendi poolel toimuva vĂ€li taseme krĂŒpteerimise (Client-Side Field Level Encryption) vĂ”imalusi on laiendatud. On lisatud vĂ”imalus kohandada auditifiltreid ja x509 sertifikaatide rotatsiooni ilma andmebaasi seiskamiseta. Lisatud on toetus koostisosade mÀÀramiseks TLS 1.3 jaoks.
- Pakutakse uut MongoDB Shell (mongosh) kĂ€surealiidest, mis areneb eraldi projektina, on kirjutatud JavaScriptis Node.js platvormi abil ja jagatakse Apache 2.0 litsentsi all. MongoDB Shell vĂ”imaldab ĂŒhenduda andmebaasiga, muuta seadistusi ja saata pĂ€ringuid. Toetatakse nutikat automaatset tĂ€itmist meetodite, kĂ€skude ja MQL vĂ€ljendite sisestamisel, sĂŒntaksit, kontekstuaalseid vihjeid, veateabe analĂŒĂŒsi ja funktsionaalsuse laiendamist pluginate kaudu. Vana CLI-liides âmongoâ kuulutatakse aegunuks ja see eemaldatakse tulevasest vĂ€ljaandest.

- Lisatud on uued operaatorid: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate ja $rand.
- Indeksite kasutamine on tagatud operaatorite $eq, $lt, $lte, $gt ja $gte puhul vÀljendites $expr.
- Vaatluskommetes, find, findAndModify, update, delete ning meetodites db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() ja db.collection.remove() on toetatud optsioon «let», et mÀÀrata muutujate nimekiri, mis muudab kÀsud loetavamaks, eraldades muutujad pÀringu tekstist.
- Tehingud find, count, distinct, aggregate, mapReduce, listCollections ja listIndexes ei blokeeru enam, kui samal ajal toimub toiming, mis rakendab eksklusiivset lukku dokumentide kogule.
- Poliitiliselt ebaĂ”igete terminite kĂ”rvaldamise algatuse raames on meeskond isMaster ja meetod db.isMaster() ĂŒmber nimetatud hello ja db.hello().
- VĂ€ljalaskmise numbrite skeem on muutunud ning on tehtud ĂŒleminek ettearvamatule vĂ€ljaandeprogrammile. Ăks suur vĂ€ljaanne koosneb iga aasta (5.0, 6.0, 7.0), igal kolmel kuul vahepealsed vĂ€ljaanded uute funktsioonidega (5.1, 5.2, 5.3) ja vajadusel parandusversioonid vigade ja turvaauke parandamiseks (5.1.1, 5.1.2, 5.1.3). Vahepealsetes vĂ€ljaannetes luuakse funktsionaalsus jĂ€rgmise suure vĂ€ljaande jaoks, st MongoDB 5.1, 5.2 ja 5.3 sisaldavad uusi vĂ”imalusi MongoDB 6.0 jaoks.
Allikas: opennet.ru

