Megérkezett a MongoDB 5.0, a dokumentumorientált DBMS, amely gyors és skálázható kulcs/érték alapú rendszerek és relációs DBMS-ek között helyezkedik el, funkcionális és kényelmes lekérdezések létrehozásához. A MongoDB kódja C++ nyelven íródott, és az SSPL licenc alatt terjesztik, ami az AGPLv3 licenc alapjaira épül, de nem nyílt, mivel diszkrét követelmény a SSPL licenc alatti alkalmazás kódja és a felhőszolgáltatáshoz szükséges összes komponens forráskódjának szállítása.
A MongoDB támogatja a JSON-szerű formátumban tárolt dokumentumok tárolását, elég rugalmas nyelvet kínál a lekérdezések megformálására, képes indexeket létrehozni a különböző tárolt attribútumokhoz, hatékonyan biztosítja a nagyméretű binárisan tárolt objektumok tárolását, támogatja az adatbázisban történő adatváltozások és hozzáadások naplózását, a Map/Reduce paradigma szerint tud működni, támogatja a replikációt és a hibamentes konfigurációk felépítését.
A MongoDB beépített eszközöket kínál a szegmentálás biztosítására (az adathalmazon alapuló adatok elosztása kiszolgálókra meghatározott kulcs alapján), amely a replikációval kombinálva lehetővé teszi a vízszintesen skálázható tároló klaszter felépítését, amelyben nincs egyetlen hibapont (bármely csomópont meghibásodása nem befolyásolja az adatbázis működését), automatikus hibaelhárítást és terhelés átvitelét támogatja a hibás csomópontból. A klaszter bővítése vagy az egyik átalakítása a szerver a klaszterré az adatbázis leállítása nélkül, egyszerű új gépek hozzáadásával történik.
Az új verzió jellemzői:
- Hozzáadták az idősort gyűjteményeket (time series collections), amelyek optimalizálták az időközönként rögzített paraméterek értékeinek tárolását (az idő és a hozzátartozó értékek készlete). Az ilyen adatok tárolására szükség van a monitorozási rendszerekben, pénzügyi platformokon és érzékelői állapotfelmérési rendszerekben. Az idősorokkal való munka hagyományos dokumentumgyűjteményekhez hasonlóan történik, de az indexek és a tárolási módszer optimalizált a időhöz való kötődés figyelembevételével, ami jelentős mértékben csökkenti a lemezhely fogyasztást, csökkenti a lekérdezések végrehajtásának késlekedését és lehetővé teszi az adatok valós idejű elemzését.
A MongoDB ezeket a gyűjteményeket írható, nem materializált nézetekként kezeli, amelyek belső gyűjtemények alapján készülnek, és automatikusan csoportosítják az idősoros adatokat az optimalizált tárolási formátumban a beszúrás során. Minden időhöz kötött bejegyzés külön dokumentumként kerül kezelésre a lekérdezéskor. Az adatok automatikusan időrendbe kerülnek és indexelődnek (nincs szükség explicit időindexek létrehozására).
- Hozzáadva az ablakos operátorok (elemző funkciók) támogatása, amelyek lehetővé teszik a műveletek végrehajtását a dokumentumok egy adott halmazával a gyűjteményben. A gyűjtőfunkcióktól eltérően az ablakos funkciók nem tömörítik a csoportosított halmazt, hanem aggregálják a "window" tartalmán alapulva, amely egy vagy több dokumentumot tartalmaz az eredmény halmazból. Az alhalmaz dokumentumainak manipulálásához egy új $setWindowFields szakasz került bemutatásra, amellyel például meg lehet határozni a különbségeket a gyűjtemény két dokumentuma között, lehetőség nyílik az értékesítési rangsor kiszámítására és az összetett időszakos sorozatok elemzésére.
- Hozzáadva az API verziókezelésének támogatása, amely lehetővé teszi az alkalmazások meghatározott API állapothoz való kötését, és csökkenti a visszafelé kompatibilitás megsértésének kockázatát az új SGBD kiadásokra való áttérés során. Az API verziókezelés elkülöníti az alkalmazás életciklusát az SGBD életciklusától, és lehetővé teszi a fejlesztők számára az alkalmazás módosításának elvégzését, amikor új lehetőségeket kell kihasználni, nem pedig akkor, amikor új SGBD verzióra kell áttérni.
- Hozzáadva a Live Resharding mechanizmus támogatása, amely lehetővé teszi a használt partíciós kulcsok (shard key) élő módosítását az SGBD leállítása nélkül.
- Bővítették az ügyfélszolgálati szintű mezők titkosításának (Client-Side Field Level Encryption) funkcióit. Lehetővé vált az audit szűrők és az x509 tanúsítványok rotációjának újrakonfigurálása az SGBD leállítása nélkül. Hozzáadva a titkosító készletek beállításának támogatása a TLS 1.3-hoz.
- Bemutatásra került egy új MongoDB Shell (mongosh) parancssori felület, amely külön projektként fejlődik, JavaScript nyelven készült a Node.js platform használatával, és Apache 2.0 licenc alatt terjesztik. A MongoDB Shell lehetőséget ad az SGBD-hez való csatlakozásra, beállítások módosítására és lekérdezések küldésére. Támogatja a módszerek, parancsok és MQL kifejezések intelligens automatikus kiegészítését, a szintaxis kiemelését, a kontextuális javaslatokat, a hibaüzenetek elemzését és a funkciók bővítését kiegészítők révén. A régi "mongo" CLI felület elavultnak nyilvánították, és a jövőbeli kiadásban eltávolítják.

- Új operátorok kerültek hozzáadásra: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate és $rand.
- Biztosított a indexek használata a $eq, $lt, $lte, $gt és $gte operátorok alkalmazásakor az $expr kifejezés belsejében.
- Az aggregate, find, findAndModify, update, delete parancsok, valamint a db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() és db.collection.remove() metódusok támogatják a "let" opciót, amely lehetővé teszi a változók listájának meghatározását, ezzel olvashatóbbá téve a parancsokat a változók és a lekérdezés szövegének elválasztásával.
- A find, count, distinct, aggregate, mapReduce, listCollections és listIndexes műveletek már nem blokkolódnak, ha párhuzamosan végrehajtanak egy olyan műveletet, amely kizárólagos zárolást alkalmaz a dokumentum kollekcióra.
- A nem politikailag korrekt kifejezések eltávolítására irányuló kezdeményezés keretében a isMaster parancs és a db.isMaster() metódus átnevezésre került hello-ra és db.hello()-ra.
- Megváltozott a kiadási számítással kapcsolatos séma, és áttértek egy előre látható kiadás ütemtervére. Évente egy jelentős kiadás (5.0, 6.0, 7.0) fog megjelenni, háromhavonta közbenső kiadások új lehetőségekkel (5.1, 5.2, 5.3), és szükség esetén hibajavító frissítések (5.1.1, 5.1.2, 5.1.3). A közbenső kiadások során funkciók fognak kialakulni a következő jelentős kiadás számára, azaz a MongoDB 5.1, 5.2 és 5.3 új lehetőségeket biztosít a MongoDB 6.0-hoz.
Forrás: opennet.ru

