MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB w 2018 r. - rok podsumowany

MongoDB jest zdecydowanie najpopularniejszym wyborem w świecie NoSQL, ponieważ jego rozproszona architektura pozwala na większą skalowalność, a model danych dokumentów zapewnia dużą elastyczność programistom. Prawie każdego roku wydawana jest główna wersja MongoDB, a rok 2018 nie jest wyjątkiem. MongoDB 4.0 został wydany w lipcu 2018 r., a po nim pojawiły się również inne pomniejsze wydania. Dzięki MongoDB w wersji 4.0 transakcje wielodokumentowe i konwersje typów są teraz obsługiwane. MongoDB wprowadziła nowe narzędzie o nazwie wykresy MongoDB (beta) i dodała obsługę konstruktora potoku agregacji w kompasie MongoDB również w 2018 roku. W tym artykule omówimy kilka ekscytujących funkcji MongoDB, które zostały wydane w 2018 roku.

Transakcje dotyczące wielu dokumentów w ACID

To była najbardziej oczekiwana funkcja w MongoDB. Począwszy od wersji 4.0, wielodokumentowe transakcje acid na zestawach replik są gotowe do produkcji i obsługiwane przez MongoDB. Wszystkie transakcje MongoDB rozszerzają teraz właściwości ACID, co zapewnia integralność danych. Bardzo łatwo jest dodać transakcje kwasowe w każdej aplikacji, która ich potrzebuje i nie wpływają one na inne operacje, które ich nie wymagają. Dzięki obsłudze wielodokumentowych transakcji kwasowych żadna operacja zapisu, która jest wykonywana wewnątrz transakcji, nie będzie widoczna poza transakcją. Oto kilka przydatnych poleceń do dodawania transakcji kwasowych w wielu dokumentach w Twojej aplikacji.

Funkcja Opis
Session.startTransaction() Rozpocznij nową transakcję
Session.commitTransaction() Zatwierdza transakcję
Session.abortTransaction() Przerywa transakcję

Oto mały przykład dodawania operacji transakcyjnych za pomocą powłoki Mongo:

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()

Wszystkie transakcje zapewniają spójny widok danych w jednej lub wielu kolekcjach w bazie danych przy użyciu izolacji migawki. MongoDB nie wypchnie żadnych niezatwierdzonych zmian do węzłów/replik drugorzędnych. Po zatwierdzeniu transakcji wszystkie zmiany zostaną zastosowane do węzłów drugorzędnych.

Istnieje wiele przykładów, w których możemy użyć wielodokumentowych transakcji kwasowych MongoDB, takich jak,

  • Przelew środków między kontami bankowymi
  • System płatności
  • System transakcyjny
  • System łańcucha dostaw
  • System rozliczeniowy

Rzeczy do rozważenia podczas dodawania transakcji

  1. MongoDB przerwie każdą transakcję, która trwa dłużej niż 60 sekund.
  2. W jednej transakcji należy zmienić nie więcej niż 1000 dokumentów. Brak limitu operacji odczytu.
  3. Każda transakcja powinna mieć rozmiar mniejszy niż 16 MB, ponieważ MongoDb przechowuje każdą transakcję jako pojedynczy wpis w oplogu.
  4. Kiedy przerwasz jakąkolwiek transakcję, wszystkie zmiany zostaną cofnięte.

Nowe operatory konwersji typów w potoku agregacji

Aby uzyskać wgląd w dane w czasie rzeczywistym i pisać złożone zapytania, programiści MongoDB zazwyczaj wolą tworzyć potok agregacji. W wersji MongoDB 4.0 dodano kilka nowych operatorów konwersji typu agregacji do odpytywania danych bez czyszczenia poszczególnych pól.

Operator agregacji Opis
$konwertuj Konwertuje wartość na określony typ
$toDate Konwertuje wartość na datę
$toDecimal Konwertuje wartość na dziesiętny
$toDouble Konwertuje wartość na Double
$toLong Konwertuje wartość na długą
$toInt Konwertuje wartość na liczbę całkowitą
$toObjectId Konwertuje wartość na ObjectId
$toString Konwertuje wartość na ciąg
$ltrim Usuń niepotrzebne znaki z początku ciągu
$rtrim Usuń niepotrzebne znaki z końca ciągu
$przytnij Usuń niepotrzebne znaki z obu stron ciągu
Kilkadziesiąt — Zostań administratorem baz danych MongoDB — wprowadzenie MongoDB do produkcjiDowiedz się, co trzeba wiedzieć, aby wdrażać, monitorować, zarządzać i skalować MongoDB. Pobierz za darmo

Rozszerzona funkcjonalność strumieni zmian

W wersji 3.6 wprowadzono funkcjonalność strumieni zmian, która zapewnia aktualizacje zmian danych w czasie rzeczywistym bez skomplikowanych ustawień. W wersji 4.0 strumienie zmian mogą śledzić zmiany całej bazy danych lub klastra zamiast tylko jednej kolekcji. Oprócz tego teraz strumienie zmian zwracają również znacznik czasu klastra powiązany ze zdarzeniem, co może być pomocne dla aplikacji serwerowych.

Szybsze migracje danych

Gdy baza danych jest podzielona na fragmenty w klastrze, elastyczne dodawanie i usuwanie węzłów z klastra podzielonego na fragmenty może czasami być czasochłonne. Sharded cluster balancer, który jest odpowiedzialny za dystrybucję danych we wszystkich shardach, został znacznie uaktualniony w wersji 4.0. Teraz może zakończyć migrację danych o 40% szybciej.

Nieblokujące odczyty dodatkowe

Wcześniej MongoDB używał do blokowania wszystkich odczytów pomocniczych, gdy wpisy oplog były stosowane do węzłów pomocniczych. To powodowało zmienne opóźnienie odczytów wtórnych. Od MongoDB 4.0 odczyty pomocnicze stały się nieblokujące ze względu na zwiększoną przepustowość zestawu replik i ulepszone opóźnienia odczytu.

Konstruktor potoku agregacji w kompasie

Kompas MongoDB to narzędzie graficzne dla MongoDB do wizualizacji i wyszukiwania danych. W tym roku kompas MongoDB otrzymał nową funkcję potoku agregacji. Zapewnia wizualny edytor zapytań do budowania wieloetapowych potoków agregacji. Oto jego migawka:

Narzędzie do tworzenia zapytań agregujących w programie Compass

Oprócz tej funkcji, compass może teraz eksportować Twoje zapytania do dowolnego wybranego przez Ciebie natywnego języka kodu.

Wykresy MongoDB

MongoDB Charts to nowe narzędzie, które umożliwia użytkownikowi szybkie tworzenie wizualizacji danych MongoDB w czasie rzeczywistym. To narzędzie jest zbudowane dla modelu danych dokumentu z obsługą obsługi typów, redukcji tablic i dokumentów zagnieżdżonych. To narzędzie pozwala użytkownikowi tworzyć kokpity wykresów i udostępniać je innym użytkownikom. Wykresy MongoDB są teraz w pełni zintegrowane z Atlasem MongoDB.

Inne nowe funkcje MongoDB

  • MongoDB Stitch:bezserwerowa platforma do tworzenia aplikacji klienckich, która może bezpiecznie uzyskiwać dostęp do usług Mongo.
  • MongoDB Kubernetes:Do wdrażania MongoDB w klastrze Kubernetes.
  • MongoDB Mobile:zapewnia elastyczność i moc MongoDB w kompaktowej formie, dzięki czemu można go używać w urządzeniach IOT.
  • Usługa monitorowania MongoDB w chmurze:aby bezpłatnie przesyłać metadane monitorowania do chmury monitorowania MongoDB.

Przyszłość MongoDB

MongoDB planuje również wprowadzić kilka nowych funkcji w wersji 4.2, która obejmuje

  • Bardziej rozbudowany silnik WiredTiger
  • Menedżer transakcji
  • Transakcje w ramach wdrożenia podzielonego na fragmenty
  • Globalne odczyty punktu w czasie

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Połączenie MongoDb odrzucone

  2. Filtry tablicy Mongodb 3.6.0-rc3 nie działają?

  3. Meteor, definiuj kolekcje dynamicznie

  4. „upsert” w osadzonym dokumencie

  5. restart usługi sudo mongodb daje nierozpoznany błąd usługi w ubuntu 14.0.4