sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB v roce 2018 – rok v recenzi

MongoDB je zdaleka nejoblíbenější volbou ve světě NoSQL, protože jeho distribuovaná architektura umožňuje větší škálovatelnost a jeho datový model dokumentů poskytuje vývojářům dobrou flexibilitu. Téměř každý rok vychází hlavní verze MongoDB a rok 2018 není výjimkou. MongoDB 4.0 byl vydán v červenci 2018, následovaly také některé další menší verze. S MongoDB verze 4.0 jsou nyní podporovány transakce s více dokumenty a převody typů. MongoDB představilo nový nástroj nazvaný MongoDB grafy (beta) a přidalo podporu agregačního potrubí stavitele v kompasu MongoDB také v roce 2018. V tomto článku si projdeme některé vzrušující funkce MongoDB, které byly vydány v roce 2018.

Multi-dokumentové ACID transakce

Toto byla nejočekávanější funkce v MongoDB. Počínaje verzí 4.0 jsou transakce s více dokumenty proti sadám replik připraveny k produkci a podporovány MongoDB. Všechny transakce MongoDB nyní rozšiřují vlastnosti ACID, což zajišťuje integritu dat. Je opravdu snadné přidat kyselé transakce v jakékoli aplikaci, která je potřebuje, a neovlivňují jiné operace, které je nevyžadují. S podporou vícedokumentových kyselých transakcí nebude jakákoli operace zápisu, která se provádí uvnitř transakce, viditelná mimo transakci. Zde je několik užitečných příkazů pro přidání vícedokumentových kyselých transakcí do vaší aplikace.

Funkce Popis
Session.startTransaction() Zahájit novou transakci
Session.commitTransaction() Potvrdí transakci
Session.abortTransaction() Zruší transakci

Zde je malý příklad přidání transakčních operací pomocí 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()

Všechny transakce poskytují konzistentní pohled na data v jedné nebo více kolekcích v databázi pomocí izolace snímků. MongoDB nebude do sekundárních uzlů/replik vkládat žádné nepotvrzené změny. Jakmile je transakce potvrzena, všechny změny budou aplikovány na sekundární uzly.

Existuje mnoho příkladů, kdy můžeme použít transakce s více dokumenty MongoDB, jako je,

  • Převod prostředků mezi bankovními účty
  • Platební systém
  • Obchodní systém
  • Systém dodavatelského řetězce
  • Fakturační systém

Co je třeba zvážit při přidávání transakcí

  1. MongoDB přeruší jakoukoli transakci, která běží déle než 60 sekund.
  2. V jedné transakci by se nemělo změnit více než 1000 dokumentů. Bez omezení pro operace čtení.
  3. Jakákoli transakce by měla mít velikost menší než 16 MB, protože MongoDb ukládá jakoukoli transakci jako jednu položku v oplogu.
  4. Když přerušíte jakoukoli transakci, všechny změny budou vráceny zpět.

Nové operátory konverze typů v agregačním kanálu

Aby vývojáři MongoDB získali přehled o datech a psaní složitých dotazů v reálném čase, obecně dávají přednost vytvoření agregačního kanálu. Ve verzi MongoDB 4.0 byly přidány některé nové konverzní operátory typu agregace pro dotazování na data bez čištění jednotlivých polí.

Operátor agregace Popis
$convert Převede hodnotu na zadaný typ
$toDate Převede hodnotu na datum
$toDecimal Převede hodnotu na desítkovou
$toDouble Převede hodnotu na dvojnásobek
$toLong Převede hodnotu na Long
$toInt Převede hodnotu na celé číslo
$toObjectId Převede hodnotu na ObjectId
$toString Převede hodnotu na řetězec
$ltrim Odstraňte nepotřebné znaky ze začátku řetězce
$rtrim Odstraňte nepotřebné znaky z konce řetězce
$trim Odstraňte nepotřebné znaky z obou stran řetězce
Somenines Staňte se MongoDB DBA – Uvedení MongoDB do produkce Zjistěte, co potřebujete vědět, abyste mohli nasadit, monitorovat, spravovat a škálovat MongoDBDdownload zdarma

Rozšířená funkčnost toků změn

Ve verzi 3.6 byla zavedena funkčnost toků změn, které poskytují aktualizace změn dat v reálném čase bez jakéhokoli složitého nastavování. S verzí 4.0 mohou toky změn nyní sledovat změny celé databáze nebo clusteru namísto pouze jedné kolekce. Kromě toho nyní toky změn také vrací časové razítko clusteru spojené s událostí, což může být užitečné pro serverové aplikace.

Rychlejší migrace dat

Když je vaše databáze rozdělena do celého clusteru, může být elastické přidávání a odebírání uzlů ze sdíleného clusteru někdy časově náročné. Sharded cluster balancer, který je zodpovědný za distribuci dat napříč všemi shardy, dostal ve verzi 4.0 zásadní upgrade. Nyní může dokončit migraci dat o 40 % rychlejším tempem.

Neblokující sekundární čtení

Dříve se MongoDB používal k blokování všech sekundárních čtení, když byly na sekundární uzly aplikovány položky oplog. To způsobovalo proměnnou latenci sekundárních čtení. Od MongoDB 4.0 se sekundární čtení stalo neblokujícím kvůli zvýšené propustnosti sady replik a zlepšeným latencím čtení.

Tvůrce agregačního potrubí v kompasu

Kompas MongoDB je nástroj GUI pro MongoDB pro vizualizaci a dotazování na data. Tento rok dostal kompas MongoDB novou funkci agregačního potrubí. Poskytuje vizuální editor dotazů pro vytváření vícestupňových agregačních kanálů. Zde je jeho snímek:

Tvůrce agregačních dotazů v kompasu

Kromě této funkce má nyní kompas také možnost exportovat vaše dotazy do libovolného nativního jazyka podle vašeho výběru.

Grafy MongoDB

MongoDB Charts je nový nástroj, který umožňuje uživateli rychle vytvářet vizualizace dat MongoDB v reálném čase. Tento nástroj je vytvořen pro datový model dokumentu s podporou zpracování typů, redukce polí a také vnořených dokumentů. Tento nástroj umožňuje uživateli vytvářet řídicí panely grafů a sdílet je s ostatními uživateli. Grafy MongoDB jsou nyní plně integrovány s Atlasem MongoDB.

Další nové funkce MongoDB

  • MongoDB Stitch:Bezserverová platforma pro vývoj klientských aplikací, která má zabezpečený přístup ke službám Mongo.
  • MongoDB Kubernetes:Pro nasazení MongoDB v rámci clusteru Kubernetes.
  • MongoDB Mobile:Poskytuje flexibilitu a výkon MongoDB v kompaktní podobě, takže jej lze používat v zařízeních IOT.
  • MongoDB Monitoring Cloud Service:Bezplatně posílat metadata monitorování do MongoDB monitorovacího cloudu.

Budoucnost MongoDB

MongoDB také plánuje spustit některé nové funkce ve verzi 4.2, která zahrnuje,

  • Rozsáhlejší engine WiredTiger
  • Správce transakcí
  • Transakce v rámci sdíleného nasazení
  • Globální bod v čase

  1. Fronta Bull:Když úloha selže, jak zastavit frontu ve zpracování zbývajících úloh?

  2. MongoDB updateMany()

  3. Otevřete port Redis pro vzdálená připojení

  4. MongoDB GPG – Neplatné podpisy