MongoDB: szybki start – instalacja i materiały do nauki

mongoDB podstawy

Jakiś czas temu pisałam o SQL wspominając o różnych bazach SQL (wpis: kurs SQL w 60 minut), jednak zupełnie został pominięty temat baz nierelacyjnych NoSQL (non SQL). Dzisiaj mam dla was kilka podstawowych informacji na temat MongoDB, najpopularniejszej z baz NoSQL.

MongoDB is a document database designed for ease of development and scaling

Tak przedstawia nam MongoDB oficjalna dokumentacja już we wstępie i faktycznie jest to w pigułce zebrana informacja czym MongoDB jest.

Plan na dziś

Co to jest MongoDB?

MongoDB to nierelacyjna baza danych oparta na dokumentach, powszechna dzięki swojej prostej strukturze bazującej na formacie JSON oraz ze względu na możliwość łatwego skalowania w poziomie zwłaszcza dla dużych zbiorów danych. MongoDB jest napisane w C++.

MongoDB podstawy

Pojedyńczy wiersz w bazie MongoDB ma strukturę dokumentu, złożoną z par klucz – wartość. Dokumenty MongoDB są podobne do obiektów JSON. Wartości mogą zawierać inne dokumenty, tablice i tablice dokumentów.

Instalacja MongoDB

Zanim przejdziemy dalej, musimy w ogóle zainstalować MongoDB na naszym komputerze

Instalacja MongoDB Windows

1. Pobranie instalatora

Aby zainstalować MongoDB na naszym komputerze wchodzimi na stronę www.mongodb.com/try/download/, wybieramy instalację wersji Community Server i pobieramy paczkę odpowiednią dla naszego systemu (prawidłowa paczka jest wybrana automatycznie – Windows 10 msi).
MongoDB instalacja Windows

W moim wypadku najnowsza wersja to 4.4.2, jednak oczywiście w momencie, gdy będziecie czytać ten wpis może być już dostępna wersja z wyższym numerem.

2. Instalacja MongoDB krok po kroku

Dalej prowadzi nas instalator. Po drodze mamy do wyboru opcję Complete lub Custom (ta opcja pozwala wybrać, które części oprogramowania instalujemy oraz niestandardową ścieżkę instalacji Mongo). Ja zostaję przy domyślnej opcji – Complete.

Zostawiamy też zaznaczoną opcję MongoDB as a Windows service.

Instalacja MongoDB na Windowsie jak usługa

W kolejnym kroku można odznaczyć Install MongoDB Compass, który jest graficznym intefejsem do MongoDB – dostarcza edytor i wizualne narzędzie do manipulacji oraz analizy danych. W razie potrzeby, w każdej chwili możemy go doinstalować.

Przechodzimy dalej i pozwalamy na instalację.

3. Uruchomienie MongoDB

MongoDB zainstaluje się w domyślnym katalogu czyli Program Files.
W moim wypadku jest to: Dysk C: > Program Files > MongoDB.

Szukamy pliku mongo.exe, znajduje się on w katalogu instalacji:

Dysk lokalny > Program Files > MongoDB > Server > 4.x > bin

Uruchomienie MongoDB Windows 10

Po kliknięciu na plik mongo.exe powinno uruchomić się okno wiersza poleceń, powłoka z informacją o połączeniu do MongoDB:

konsola MongoDB

W tym momencie możemy już korzystać z konsoli MongoDB np. wykonać polecenie db.help() z pomocnymi komendami mongo.

4. Dodaj MongoDB do zmiennych środowiskowych

Nie możemy jednak korzystać z mongo z dowolnego miejsca na komputerze. Jeśli teraz wyszukam wiersz poleceń windows (cmd) i wpiszę polecenie mongo, to dostanę informację, że taka komenda nie istnieje.
Tylko przez kliknięce w plik mongo.exe w odpowiednim katalogu uruchamiamy klienta MongoDB. Nie jest to zbyt wygodne, dlatego chcemy (podobnie jak w Pythonie i wielu instalacjach) dodać mongo do zmiennych systemowych (dodać do PATH’a 😉 ).

Wyszukaj i Edytuj zmienne środowiskowe systemu (Edit system environment variables). W zakładce Zaawansowane na samym dole kliknij Zmienne środowiskowe…

Dodaj MongoDB do zmiennych środowiskowych

W tym miejscu wybieramy zmienną Path i opcję Edytuj…

Mongo DB Windows - dodanie do PATH

Otworzy nam się nowe okno. Wybieramy Nowy i dodajemy ścieżkę do folderu bin dla MongoDB. Możemy albo ją wkleić, albo wybrać z boku Przeglądaj… i wyklikać odpowiednie miejsce.

U mnie:

C:\Program Files\MongoDB\Server\4.4\bin

MongoDB dodanie zmiennej środowiskowej

Nie zapomnij zatwierdzić wszystkiego – OK.

Teraz po otwarciu nowego okna wiersza poleceń i wpisaniu mongo uruchomi nam się powłoka MongoDB. Możemy ją zamknąć i przejść w tryb „zwykłej” konsoli za pomocą skrótu Ctrl + C
MongoDB konsola

Instalacja MongoDB MacOS

Instalujemy zgodnie z instrukcją w dokumentacji. Skorzystamy z narzędzia homebrew (jeśli nie masz homebrew zacznij od jego instalacji).

Otwórz aplikację Terminal lub iTerm.

Zainstaluj MongoDB Community Edition za pomocą brew w 2 komendach:

brew tap mongodb/brew

następnie:

brew install mongodb-community

MongoDB zostało zainstalowane na Twoim komputerze.

Uruchomienie mongodb
brew services run mongodb-community

lub

brew services start mongodb-community

MongoDB uruchomi się jako usługa w tle. Oto, co zobaczysz:

$ brew services start mongodb/brew/mongodb-community
==> Successfully started `mongodb-community` (label: homebrew.mxcl.mongodb-community)

Ponowne wykonanie tej komendy zwróci informację, że instancja mongo jest już uruchomiona, ale zawsze możemy sprawdzić listę działających serwisów za pomocą komendy:

brew services list

Przy mongodb-community powinen pojawić się status started.

Jaka jest różnica między run a start ?

Komenda start uruchamia usługę, w tym wypadku MongoDB, wraz zalogowaniem komputera, podczas gdy run to jednorazowe uruchomienie. Aby zakończyć pracę danej usługi nalezy wykonać komendę 

brew services stop mongodb-community

Instalacja MongoDB Linux

W zależności od dystrybucji Linuxa w dokumentacji znajduje się osobna instrukcja. Różnice są niewielkie, jednak warto przejść oficjalną instalację https://docs.mongodb.com/manual/installation/#mongodb-community-edition-installation-tutorials lub spojrzeć na YT 😉

Korzystanie z konsoli mongo

Jeśli MongoDB jest uruchomione, mamy dostęp do konsoli Mongo. Wystarczy wpisać komendę:

mongo

konsola MongoDB macOS

Aby wyjść z konsoli Mongo użyj skrótu klawiszowego Ctrl + C.

Sprawdź, że MongoDB działa prawidłowo

Po uruchomieniu konsoli w terminalu wyświetla się kilka początkowych informacji. Komenda mongo sprawia, że łączymy się do lokalnie uruchomionej instancji MongoDB – wersja powłoki, adres uruchomienia instancji – localhost (127.0.0.1) oraz port (domyślny port uruchomienia to 27017), id sesji i wersja serwera.

Jeśli później w trakcie pracy, będziemy chcieli szybko sprawdzić wersję klienta MongoDB na jakiej pracujemy. Wystarczy wykonać polecenie db.version().

Komend jest oczywiście wiele, wiele więcej.

Podstawowe polecenia

Będząc w konsoli mongo możemy sprawdzić listę dostępnych komend klienta MongoDB. Wpisz db.help(). Wynikiem będzie długa lista dostępnych instrukcji, które są zrozumiałe dla MongoDB:
MongoDB podstawowe komendy

Możemy sprawdzić z jakiej bazy aktualnie korzystamy prostą komendą db. Wynik będzie następujący:

> db
test

Naszą startową bazą jest baza o nazwie test.

Możemy też sprawdzić statystyki dotyczące serwera MongoDB. Wpisz polecenie db.stats(), aby zobaczyć nazwę bazy danych, liczbę kolekcji i dokumentów w naszej bazie danych.

Na początku pierwszą i ale nie jedyną bazą będzie baza test, a w statystykach prawie wszystkie wartości będą ustawione na 0.

Aby wyświetlić listę aktualnie dostępnych baz należy wykonać polecenie show dbs.

Dodanie danych testowych

Tak jak wspomniałam w bazie mamy kolekcje. Kolekcje zawierają dokumenty, jednak nie musimy mieć narzuconej struktury, wręcz jeśli jej nie zdefiniujemy, to takiej struktry nie ma, dlatego możemy do bazy wrzucić dowolne dane. Np.

db.test.save( { hello: "world" } )

Zostanie zapisana para klucz-wartość.

Wyświetlmy więc zawartość kolekcji komendą db.collectionName.find():

db.test.find()

W wyniku zobaczymy „_id” wskazujący na ObjectId wraz z zawartością naszą parą klucz-wartość.

Super nasza baza MongoDB jest prawidłowo zainstalowana. Możesz ruszać dalej z nauką.

Materiały do nauki

Kilka moich propozycji materiałów do nauki od podstaw. Materiały darmowe lub płatne, ale tanie 😉

➔ Darmowy kurs MongoDB Data Wrangling od Udacity (jest kurs udostępniony za darmo w ramach ze ścieżki Data Analyst Nanodegree)

➔ Kurs MongoDB 101 od Academy 3T jest darmowy w zakresie podstawowym. W części zaawansowanej nie wszystko dostępne za darmo.

➔ Wideo kurs MongoDB na Udemy The Complete Developer Guide, jedyny płatny z listy, ale kompleksowy i tani (ok. 10$). Jeśli natomiast interesuje was Mongo + Node.js to również na Udemy dostępny jest kurs Node.js, Express, MongoDB & More.