Het jy al ooit gewonder waarom updates en opgraderings so noodsaaklik is vir enige stelsel nie? Wel, dit is geen geheim nie: Hulle verseker dat stelsels relevant en doeltreffend bly. Met MongoDB is dit nie anders nie. Wanneer ons dink aan opgraderings, soek ons doeltreffendheid, sekuriteit, prestasie en ander voordele wat met opgedateerde stelsels kom. Maar elke opdatering bring veranderinge wat versigtig beheer moet word. In hierdie artikel sal ons 'n paar van die nuwe funksies van MongoDB weergawe 8.0 dek en die sleutel oorwegings wat jy moet oorweeg voordat jy na hierdie nuwe weergawe opgrader. Wat is nuut in die versie 8.0? Die gewildste dokumente databasis is nou vinniger as ooit. is 'n uitstekende keuse vir diegene wat op soek is na prestasie, geavanceerde tegnologie en 'n intuïtiewe ervaring. Dit bied 'n merkbare verbetering in deurvoer en latentie, in vergelyking met vorige weergawes. Interne toets teen 7.0 toon 32% vinniger lees, 59% vinniger updates, en 200% + vinniger tydseriese vrae. Die vrylating van hierdie nuutste weergawe fokus op verskeie sleutelpilare: Die MongoDB 8.0 MongoDB 8.0 bied beduidende prestasie verbeterings, soos vinniger lees, skryf en bulk bedrywighede. en Nou, hulle is geoptimaliseer!So, as jou aansoek hoë lading ervaar, kan die opgradering na 8.0 drasties reaksie tye verminder en die deurvoer verbeter, wat verseker dat jou stelsel selfs onder swaar gebruik skaalbaar bly. Performance improvement insertMany bulkInsert In MongoDB 8.0, die vermoë om bereikvragen op versleutelde velde uit te voer met behulp van die $lt, $lte, $gt en $gte-operators. Security Wenswaardige encryptie : Met MongoDB 8.0 is horisontale skaal nou vinniger en meer bekostigbaar. Hierdie metode laat toepassings toe om buite die grense van tradisionele databasis te gaan deur data oor verskeie bedieners, bekend as shards, te versprei, sonder dat dit groot hoeveelhede hulpbronne vooraf moet voorberei. Resilience, scalability, and high availability Algemene veranderinge Wenswaardige encryptie Met die nuwe weergawe, Queryable Encryption kan jy soek binne 'n bereik, met behulp van operateurs soos die die en , byvoorbeeld, om data te filter deur spesifieke intervalle, soos datums of numeriese waardes, terwyl die data versleutel word. $lt $lte gt $gte Uitdruklike query fases Express is geïntroduceer as 'n nuwe uitvoerfase wat die querypad optimiseer vir eenvoudige gebruik gevalle. As jy 'n eenvoudige query wat 'n enkele _id-indeks gebruik, byvoorbeeld... db.customer.find({_id: ObjectId('670ec6b005b98857588f5b6a')}).explain() ... jy sal sien dat hierdie nuwe EXPRESS_IXSCAN stadium ingesluit is. EXPRESS-fases kan een van die volgende wees: EXPRESS_CLUSTERED_GESPREKING Express - Verwyder Uitdrukking / uitdrukking Express - Opdatering In plaas van die uitvoering van die klassieke plan fase, jou query sal nou gebruik maak van hierdie nuwe fase. Dit skip gereelde query beplanning en uitvoering, lewer tot 'n 17% verbetering in prestasie. Query vorm en query instellings Die query vorm in MongoDB verteenwoordig 'n stel attribute wat soortgelyke queries saamgroepeer, insluitend filters, sortering, projeksies, aggregeringsfases en die naamruimte. Dit laat MongoDB toe om prestasie te verbeter deur queryplane vir struktureel soortgelyke queries te hergebruik, wat lei tot meer doeltreffende uitvoering. Begin in MongoDB 8.0, ondersteun die query vorm query instellings, wat jou toelaat om spesifieke gedrag te definieer vir ooreenstemmende queries. Een van hierdie gedrag is die Wanneer toegepas, MongoDB sal outomaties verwerp enige query wat ooreenstem met hierdie vorm, ongeag sy spesifieke waardes. reject: true Stel jou voor dat jy 'n databasis bestuur wat vrae van derde-party-programme ontvang. Een aansoek begin om swaar vrae te stuur wat 'n versamelingskanning (COLLSCAN) uitvoer, wat die stelsel aansienlik vertraag - byvoorbeeld, 'n vrae soos: Use case: db.pizzaOrders.find({price: 10}) // Explain Plan "winningPlan": { "stage": "COLLSCAN", "filter": { "price": { "$eq": 20 } }, }, Ons kan 'n querySettings stel om queries te verwerp wat ooreenstem met hierdie struktuur (onafhanklik van die waardes): db.adminCommand( { setQuerySettings: { find: "pizzaOrders", filter: { price: 20 }, $db: "my_database" }, settings: { comment: "Will be rejected", reject: true } } ) Hierdie opdrag stel 'n query vorm waarin enige query op soek is na In die die versameling sal verwerp word, ongeag die werklike waarde wat in die query verskaf word. (Die fokus is heeltemal op die struktuur van die query.) Daarom, as ons 'n query uitvoer wat met hierdie struktuur ooreenstem... price pizzaOrders price db.pizzaOrders.find({price: 10}) ...die query sal outomaties deur MongoDB verwerp word: Om al die query instellings te sien, kan jy die $querySettings-stap in 'n aggregeringsbuis gebruik: db.aggregate( [ { $querySettings: {} } ] ) Die resultate: [ { "queryShapeHash": "4DD2DED8A25C787DFA41325883052FABB97DDEE567B2636A3B188DDF0CCFE6F0", "settings": { "reject": true, "comment": "Will be rejected" }, "representativeQuery": { "find": "pizzaOrders", "filter": { "price": 20 }, "$db": "my_database" } } ] As u egter queryvorme wil inspekteer, d.w.z. die verskillende soorte query wat uitgevoer is, het u twee opsies: Gebruik $QueryStats Hierdie aggregeringsfase verskaf statistieke oor vrae wat uitgevoer word . since the last server restart use('admin'); db.aggregate( [ { $queryStats: {} } ] ) Dit help om querypatrone te analiseer en prestasie te optimaliseer. Kyk na die MongoDB-logboeke. Slow queries word met hul queryShapeHashes in die MongoDB-logboeke aangeteken. Dit is nuttig vir die identifisering van ineffektiewe queries wat optimalisering benodig. Om dit te verwyder, kan ons die query vorm hash gebruik: db.adminCommand( { removeQuerySettings: '4DD2DED8A25C787DFA41325883052FABB97DDEE567B2636A3B188DDF0CCFE6F0' } ) Hierdie benadering is waardevol omdat dit verseker dat die databasis nie beïnvloed word deur derde-party vrae wat hoë hulpbronverbruik kan veroorsaak nie. . without the need to make changes to the application Kompatibiliteit en afschrikkings Verhouding wil Voor weergawe 8.0, as jy op soek was na waardes gelyk aan , velde met die waarde ook teruggekeer sal word. Maar in hierdie nuwe weergawe word die data wat sal nie meer teruggestuur word in vrae met Gelijkheid - byvoorbeeld: null undefined undefined null // People collection [ { _id: 1, name: null }, { _id: 2, name: undefined } ] Gegewe hierdie versameling, as jy die volgende query... db.people.find({name: null}) ...die resultaat is: [ { _id: 1, name: null } ] Data met sal nie meer teruggestuur word nie. As u aansoek data bevat met , kan u onbepaalde data en queries herschryf of opgrader om hierdie gedragsverandering te bereken. undefined undefined : die die tipe is afgesny, en in sommige gevalle, as jy probeer om Dit sal omskep word in . Note undefined undefined null Indeks filters Oorweeg die gebruik , soos bespreek in die query vorm afdeling van hierdie artikel, aangesien indeks filters in hierdie weergawe afgeskryf word. bied aansienlik meer funksionaliteit, maak dit die voorkeur keuse. Met indeks filters nou afgedank, is dit raadsaam om te skakel na om die voordele van sy gevorderde eienskappe te gebruik. setQuerySettings setQuerySettings setQuerySettings Opgradering van beplanning en strategie Nou dat jy die nuwe funksies in die nuutste weergawe gesien het en besluit om te opgrader na die nuutste MongoDB vrylating, is daar 'n paar dinge wat jy moet bewus wees van. Hou in gedagte dat elke scenario sy eie besonderhede het, en om te verstaan hoe jou aansoek MongoDB-funksies gebruik, is noodsaaklik vir 'n effektiewe opgradering. Pre-upgrade beoordeling Upgrade version path Al die Gebruikers moet versie 7.0 gebruik voordat hulle na versie 8.0 opgedraai word. Replika stel Dit is belangrik om op te let dat dit nie moontlik is om direk van weergawe 5.0-reeks na 8.0, byvoorbeeld, of van 6.0-reeks na 8.0. Review release notes Geen ander plek sal meer waardevolle inligting bevat as die Maak seker dat jy altyd aandag gee aan elke aantekening wat vrygestel word, veral vir enige breekbare veranderinge, nuwe funksies en afgewerkte funksionaliteite. release notes of the version Release notas van die weergawe Check the driver compatibility Voordat jy iets wat met Mongodb verband hou, opgrader, is dit noodsaaklik om die verenigbaarheidstabel in die dokumentasie vir jou bestuurder te kyk. , moet jy seker maak dat die MongoDB-versie verenigbaar is met die MongoDB-driver wat jy van plan is om te gebruik. avoid breaking your application Ons kan sien dat om al die funksies van MongoDB 8.0 te gebruik, moet jy die bestuurder weergawe 5.2 tot 5.3 gebruik. Cluster health check Nog 'n belangrike punt voor die aanvang van die opgradering is om die gesondheid van al die lede van jou replica-set te kyk. **Seker dat al die nodes optimaal loop. **Jy kan hierdie inligting vind deur die "Database Cluster" -menu te besoek en op jou cluster te klik: Op hierdie skerm sal jy sien dat elke knoop 'n groen punt naby sy naam het, wat aangedui dat die gesondheid goed is. Staging cluster: your testing hub Om 'n veilige opdatering te verseker en risiko's te verminder, is dit noodsaaklik om met 'n Die opstellingsomgewing dien as 'n veilige sone om nuwe weergawes, funksies en veranderinge te toets sonder om die eindgebruikers te beïnvloed. Testeer die omgewing Maak 'n stadium cluster Hierdie stap behels die skep van 'n toegewyde cluster vir toetsdoeleindes. Volg die standaardproses om 'n nuwe cluster op te stel, om die produksie omgewing akkuraat te simuleer. verseker dat dit ooreenstem met die huidige produksie weergawe Verfriss stappe met produksie data Herstel 'n onlangse back-up van die produksie cluster om te verseker dat die stadium omgewing weerspieël die huidige toestand van produksie. Jy kan dit doen deur die Atlas-interface deur die back-up te kies, die herstel opsie te kies en die stadium cluster te rig. Opgradering van die stadiumscluster na 8.0 Opdates van die stadiumscluster na MongoDB 8.0 om die nuwe weergawe en sy funksies te toets. Om dit te doen, klik eenvoudig op diecluster en kies "Edit Konfigurasie" en "Additional Settings": Test jou aansoek Voer toetse uit om seker te maak dat alles werk soos verwag, insluitend beide databasis- en aansoektoetse. Opgradering van produksie clusters Na die toets in 'n scenario-omgewing, maak seker dat die Feature Compatibility Version (FCV) gepas is, voordat jy die produksie cluster opgrader. bied 'n bykomende laag van sekuriteit tydens die opgraderingsproses deur te beheer watter funksies van die nuwe MongoDB-versie in die cluster geaktiveer word.Dit laat jou toe om geleidelik na die nuutste weergawe te oorgegaan, om seker te maak dat alles korrek werk voordat die nuwe funksies ten volle in produksie geaktiveer word. Die FCV Alhoewel dit nie verpligtend is nie, gee die konfigurasie van die FCV jou fleksibiliteit. Indien nodig, kan jy terugkeer na die vorige weergawe deur die instelling van die FCV aan te pas. Dit verseker dat jy die opgraderingsproses met 'n minimum risiko kan bestuur en meer beheer oor moontlike probleme het. Sodra jy die FCV (indien gewenst) gekonfigureer het, kan jy voortgaan met die opgradering van die produksie cluster. Om dit te doen, volg net dieselfde stappe wat in die vorige afdeling uiteengesit is, maar hierdie keer, toepas hulle op die produksie cluster. Bewaking Post-upgrade is net so belangrik soos al die vorige stappe. Monitoring van die bedryf is noodsaaklik om die sukses van die proses te verseker. Sommige belangrike punte om te kyk is: Monitor die gesondheid van die nodes om te verseker dat hulle korrek funksioneer. Node health Hou 'n oog op die van lees- en skryfoperasies om te verseker dat daar geen prestasie probleme is nie. Latency of operations Latyns • Monitor die om te verseker dat hulle na die opgradering doeltreffend loop. Query performance Die prestasie van queries : Kyk of indekse behoorlik werk en optimiseer hulle indien nodig. Indexes Last but not least, kyk na die metrikes vir elke knooppunt in jou cluster. Hulle sal waardevolle insig verskaf in die algehele gesondheid van jou stelsel. Jy kan hulle vind in die "Metrics" tab van jou cluster: Herhaal Maak seker dat u die ondersteuningslewe siklus van u MongoDB-kluster monitor en opgedateer bly oor weergawes, sodat u kan voorberei vir 'n soepel en doeltreffende opgradering. Begryp hoe jou aansoek interaksie met MongoDB funksies. Herken enige noodsaaklike veranderinge in jou aansoek. Plan jou opgradering goed vooraf. Moenie die bestuurder-updates vergeet nie. Voer grondige toetse uit voordat jy met die opgradering voortgaan. Hoe kompleks is jou opgradering? Nou dat ons die sleutelstappe vir 'n suksesvolle opgradering uiteengesit het - insluitend pre-upgrade-beoordeling, fase-cluster-toetsing en toetsing van bestuurder-verenigbaarheid - laat ons evalueer hoe kompleks jou opgradering kan wees. Opvoedkundige opgraderings As jy reeds op MongoDB 7.0 is, opgedateerde bestuurders het en op 'n ten volle ondersteunde Atlas-laag hardloop, dan is die opgradering oor die algemeen vinniger en makliker. Meer komplekse opgraderings As u 'n ouer weergawe gebruik (bv. 5.0 of 6.0), moet u geleidelik opgrader (bv. 5.0 → 6.0 → 7.0 → 8.0), soos voorheen genoem. Aangesien die opgraderings tyd aansienlik wissel op grond van hierdie faktore, gebruik 'n stadium cluster as 'n verwysing (gespreek in die vorige afdeling) Alhoewel hierdie benadering nie 'n presiese tyd gee nie, kan dit jou 'n ooreenstemmende idee gee van die totale duur van die opgradering, wat jou toelaat om dienende te beplan. can help estimate the duration. Ondanks die kompleksiteit, volg die beste praktyke - soos die toets van 'n stadium omgewing en die monitoring van die cluster gesondheid - verseker 'n gladde en betroubare oorgang. Konklusie Hierdie artikel het belangrike veranderinge in die nuutste weergawe beklemtoon, insluitend kompatibiliteit oorwegings, afgewerkte funksies en beste praktyke vir 'n soepele opgradering. Hierdie artikel is geskryf deur Ricardo Mello, Senior Developer Advocate-São Paulo, Brasilië. Ricardo is gefokus op Java en Kotlin, met sertifikasies as 'n MongoDB Associate Developer en Java SE 8 Programmer. Met 13 jaar ervaring as 'n sagteware ingenieur, gebruik hy sy kundigheid om ontwikkelaars in staat te stel en innovasie by MongoDB te dryf. Hy is passievol oor die deel van kennis, gelowig dit is een van die beste maniere om by te dra tot die gemeenskap. Vind hom op LinkedIn. Hierdie artikel is geskryf deur Ricardo Mello, Senior Developer Advocate-São Paulo, Brasilië. Ricardo is gefokus op Java en Kotlin, met sertifikasies as 'n MongoDB Associate Developer en Java SE 8 Programmer. Met 13 jaar ervaring as 'n sagteware ingenieur, gebruik hy sy kundigheid om ontwikkelaars in staat te stel en innovasie by MongoDB te dryf. Hy is passievol oor die deel van kennis, gelowig dit is een van die beste maniere om by te dra tot die gemeenskap. Vind hom op LinkedIn. Ricardo Mello se lewe Ricardo Mello se lewe Die Linkedin