sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB i 2018 - A Year in Review

MongoDB er langt det mest populære valg i NoSQL-verdenen, da dens distribuerede arkitektur giver mulighed for mere skalerbarhed, og dens dokumentdatamodel giver god fleksibilitet til udviklere. Næsten hvert år udgives større MongoDB-version, og 2018 er ingen undtagelse. MongoDB 4.0 blev udgivet i juli 2018, efterfulgt af nogle andre mindre udgivelser også. Med MongoDB version 4.0 understøttes multidokumenttransaktioner og typekonverteringer nu. MongoDB introducerede et nyt værktøj kaldet MongoDB charts(beta) og tilføjede understøttelse af aggregeringspipelinebuilder i MongoDB kompas også i 2018. I denne artikel vil vi gennemgå nogle spændende funktioner i MongoDB, som blev udgivet i 2018.

Multi-Document ACID Transaktioner

Dette var den mest ventede funktion i MongoDB. Fra version 4.0 er syretransaktioner med flere dokumenter mod replikasæt produktionsklar og understøttet af MongoDB. Alle MongoDB-transaktioner udvider nu ACID-egenskaber, hvilket sikrer dataintegritet. Det er virkelig nemt at tilføje syretransaktioner i enhver applikation, der har brug for dem, og de påvirker ikke andre operationer, der ikke kræver dem. Med understøttelse af syretransaktioner med flere dokumenter vil enhver skriveoperation, der udføres inde i transaktionen, ikke være synlig uden for transaktionen. Her er nogle nyttige kommandoer til at tilføje syretransaktioner med flere dokumenter i din applikation.

Funktion Beskrivelse
Session.startTransaction() Start en ny transaktion
Session.commitTransaction() Bekræfter transaktionen
Session.abortTransaction() Afbryder transaktionen

Her er et lille eksempel på tilføjelse af transaktionsoperationer ved hjælp af Mongo shell:

akashk:PRIMARY> use mydb
akashk:PRIMARY> db.createCollection(“newColl”)
akashk:PRIMARY> session = db.getMongo().startSession()
akashk:PRIMARY> session { "id" : UUID("62525323-1cd1-4ee8-853f-b78e593b46ba") }
akashk:PRIMARY> session.startTransaction()
akashk:PRIMARY> session.getDatabase("mydb").newColl.insert({name : 'hello'})
akashk:PRIMARY> WriteResult({ "nInserted" : 1 })
akashk:PRIMARY> session.commitTransaction()

Alle transaktioner giver en ensartet visning af data på tværs af en eller flere samlinger i databasen ved hjælp af snapshot-isolering. MongoDB vil ikke skubbe nogen uforpligtende ændringer til sekundære noder/replikaer. Når en transaktion er forpligtet, vil alle ændringerne blive anvendt på sekundære noder.

Der er mange eksempler, hvor vi kan bruge MongoDB multi-dokument syretransaktioner såsom,

  • Pengeoverførsel mellem bankkonti
  • Betalingssystem
  • Handelssystem
  • Supply chain system
  • Faktureringssystem

Ting at overveje, når du tilføjer transaktioner

  1. MongoDB vil afbryde enhver transaktion, der kører i mere end 60 sekunder.
  2. Ikke mere end 1000 dokumenter bør ændres i en enkelt transaktion. Ingen grænse for læsehandlinger.
  3. Enhver transaktion skal være mindre end 16 MB, da MongoDb gemmer enhver transaktion som en enkelt post i oplog.
  4. Når du afbryder en transaktion, vil alle ændringer blive rullet tilbage.

Nye typekonverteringsoperatører i aggregationspipeline

For at få realtidsindsigt i data og skrive komplekse forespørgsler foretrækker MongoDB-udviklere generelt at skabe aggregeringspipeline. I MongoDB 4.0-versionen er nogle nye konverteringsoperatorer af aggregeringstype blevet tilføjet til at forespørge data uden at rense individuelle felter.

Aggregationsoperatør Beskrivelse
$convert Konverterer værdi til en specificeret type
$toDate Konverterer værdi til Dato
$toDecimal Konverterer værdi til decimal
$toDouble Konverterer værdi til dobbelt
$toLong Konverterer værdi til lang
$toInt Konverterer værdi til heltal
$toObjectId Konverterer værdi til ObjectId
$toString Konverterer værdi til streng
$ltrim Fjern unødvendige tegn fra begyndelsen af ​​strengen
$rtrim Fjern unødvendige tegn fra slutningen af ​​strengen
$trim Fjern unødvendige tegn fra begge sider af strengen
Severalnines Bliv en MongoDB DBA - Bring MongoDB to ProductionLær om, hvad du skal vide for at implementere, overvåge, administrere og skalere MongoDBDownload gratis

Udvidet funktionalitet af ændringsstrømme

Funktionalitet af ændringsstrømme, som giver opdateringer af dataændringer i realtid uden komplekse indstillinger, blev introduceret i version 3.6. Med version 4.0 kan ændringsstrømme spore ændringer af hele databasen eller klyngen i stedet for kun en enkelt samling nu. Ud over dette returnerer ændringsstrømme nu også klyngetidsstempel forbundet med en hændelse, som kan være nyttig for serverapplikationerne.

Hurtigere datamigreringer

Når din database er splittet på tværs af klyngen, kan tilføjelse og fjernelse af noder elastisk fra en shard klynge nogle gange være tidskrævende. Den sharded cluster balancer, som er ansvarlig for at distribuere data på tværs af alle shards, fik en større opgradering i version 4.0. Nu kan den afslutte datamigrering med 40 % hurtigere hastighed.

Ikke-blokerende sekundære læsninger

Tidligere plejede MongoDB at blokere alle sekundære læsninger, når oplog-indgange blev anvendt på de sekundære noder. Dette forårsagede variabel latens for sekundære læsninger. Fra MongoDB 4.0 er sekundære læsninger blevet ikke-blokerende på grund af øget replikasætgennemstrømning og forbedrede læseforsinkelser.

Aggregation Pipeline Builder i Compass

MongoDB kompas er GUI-værktøjet til MongoDB til at visualisere og forespørge data. I år fik MongoDB kompas en ny funktion i aggregeringspipeline. Det giver visuel forespørgselseditor til opbygning af flertrins aggregeringspipelines. Her er et øjebliksbillede af det:

Aggregationsforespørgselsbygger i Compass

Ud over denne funktion har kompasset også mulighed for at eksportere dine forespørgsler til et hvilket som helst indfødt kodesprog efter eget valg nu.

MongoDB-diagrammer

MongoDB Charts er det nye værktøj, som gør det muligt for brugeren hurtigt at skabe realtidsvisualiseringer af MongoDB-data. Dette værktøj er bygget til dokumentdatamodel med understøttelse af typehåndtering, array-reduktioner og indlejrede dokumenter. Dette værktøj giver brugeren mulighed for at oprette diagram-dashboards og dele det med andre brugere. MongoDB-diagrammer er nu fuldt integreret med MongoDB Atlas.

Andre nye MongoDB-funktioner

  • MongoDB Stitch:Serverløs platform til udvikling af klientapplikationer, som kan få sikker adgang til Mongo-tjenester.
  • MongoDB Kubernetes:Til implementering af MongoDB i Kubernetes-klyngen.
  • MongoDB Mobile:Giver fleksibilitet og kraft i MongoDB i en kompakt form, så den kan bruges i IOT-enheder.
  • MongoDB Monitoring Cloud Service:For at skubbe overvågningsmetadata til MongoDB Monitoring Cloud gratis.

Fremtiden for MongoDB

MongoDB planlægger også at lancere nogle nye funktioner med sin version 4.2, som inkluderer,

  • Mere omfattende WiredTiger-motor
  • Transaktionsadministrator
  • Transaktioner på tværs af en fragmenteret implementering
  • Globale tidpunkter

  1. Sådan starter du mongo db på windows

  2. Forespørge array-elementer med Mongo

  3. Aggregationsfilter efter $lookup

  4. Forbinder MongoDB til Ruby med selvsignerede certifikater til SSL