#MongoDB01 – Prawdopodobnie najpopularniejsza nierelacyjna baza danych. Krótkie omówienie, serwer lokalny, podstawy na przykładach.

Reading Time: 7 minutes

Siemson w dzisiejszym wpisie o jednej z najpopularniejszych baz danych typu nierealacyjnego.
Główny podział baz to realacyjne oraz nierealcyjne (NoSQL).
I te drugie są w większości wykorzystywane po to by trzymać na nich pliki binarne. Dlatego iż cechuje się dużą skalowalnością oraz dużo lepszą wydajnością. Ponadto ‚trzyma’ ona dane ala json ma coś wspólnego z mapami z programowania.
Inną popularną nie realcyjną bazą często wykorzystywaną mobilnie jest SQLite i o niej też niedługo pojawi się wpis.

Pobieranie mongodb serwer for windows

Pobierzmy najpierw serwer lokalny na Windowsa.
https://www.mongodb.com/try/download/community
Przechodzimy tutaj i automatycznie strona dostosowała, to co ma pobrać.

Pobieramy domyślnie MongoDB communioty serwer msi w wersji tej stable jaką podpowiada strona nic nie zmieniamy 🙂

Instalacja MongoDB Community Server

Tu wielki plus dodania MongoDB jako usługi, wcześniej trzeba było zrobić sobie mini skrypcik w bat i z tego co pamiętam trzeba było ręcznie tworzyć katalogi data log ?
Nie pamiętam dokładnie ale coś z tym było poniżej wersji 4tej.
Domyślnie proponuje nam MOngoDB compass czyli GUI do zarządzanie bazami, jednakże dalej we wpisie zaproponuje wam lepszy program.
MongoDB Compass bez pytania się sam odpalił, no cóż.
Klikamy na niebieskie fill in connection
I defaultowo wszystko zostawiamy i connect
Jako, że domyślnie baza jest bez usera i hasła to mamy już ją gotową.

MongoDB w praktyce

Utworzymy sobie przykładową bazę z kolekcją.

Baza wiadomo to baza danych, może być ich wiele na serwerze zaś kolekcja to coś ala tabela.

Rozwijając nowo stworzoną bazkę i kolekcje mamy takie coś jak import data lub też zostawiamy puste jeśli np. aplikacja, którą testujemy sama napełni kolekcje.
W przypadku moich testów baza i kolekcja sama się tworzyła i było to ‚ogarnięte’ na poziomie kodu aplikacji, więc nic nie trzeba było ręcznie robić.

Klikamy import data i w kolejnym okienku json wybieramy i browse wybieramy sampelka.
Sampla znajdziecie tutaj – > https://media.mongodb.org/zips.json

Zatem klikamy import i paczamy co się stanie.

I mamy pozytywny rezultat importu.
Na zaimportowanym przykładzie widzimy, że tutaj wykorzystanie bazy w innym celu niż binarnym. Możemy najechać na jakiś rekord i kliknąć edit.
Niespotykanym np. w MSSQL jest typ danych typu array czyli tablice czyli dobrze znany typ danych widzimy ze jest sobie tablica która przechowuje 2 elementy liczone od zera jako współrzędne jednakże, nie stanowi problemu dodanie kolejnych wpisów w takiej tablicy – tablice na plus ! 🙂

Ale jak widzimy są też inne znane nam typy danych takie jak string czyli taki odpowiednik varchara.

Screen z dostępnych typów danych.
Insert z poziomu tego programu jest dość prosty i operujemy albo na widoku jsona.
Dzwoń do JSONa 😀

Insert możemy też mieć w formie ‚powpisuj jak noob’.

Co ciekawe ID mogłem zmienić tylko w JSONie, dziwne to wszystko 😀

Wyfiltrowanie wymaga przeczytania dokumentacji jak się posługiwać filtrami.
Takie skrócone selecty z wherem 😀

Sprawdźmy opcję drugą od prawej na danym rekordzie jest to klonowanie rekordu i jest fajne ponieważ, robi autoincrementacje czyli ID już sobie sam uzupełni.

Hehe patrzcie jak zadziałał autoincrement ktoś ogólnie dał ID jako string i wstawiło byle co, no fajnie XD

Można też wywalać dane dokumenty czyli wpisy (rows) w tabelce (kolekcji). Dostajemy potwierdzenie i usuwamy.

NoSQLBooster – dobre narzędzie do zarządzania bazami MongoDB

https://nosqlbooster.com

Pobieramy na Windowsa

Instalacja NoSQLBooster

Instalator sam wszystko zrobił za nas, ja nie widziałem żadnego next itp.
Niby pozytywne, ale wolę mieć kontrolę nad instalacją …

Wciskamy create i tak samo jak w przypadku Compass zostawiamy to co domyślnie nam wypełniło.
Wciskamy test connection i mamy status ok

Klikamy iksa i save & connect

Rozwijamy naszą baze test i kolekcje collectiontest i klikamy dwukrotnie na kolekcje.

Widzimy ze domyślnie sortuje po id malejąco, więc już widzimy nasz wcześniej dodany wpis.
Tam gdzie mamy 20 w rozwijanej liście to maksymalna ilość wyświetlanych wierszy domyślnie jest 20, więc limit 100 nie będzie widoczny na jednej stronie i trzeba tymi niebieskimi strzałkami manipulować.

Klikając taką ikonkę dokument z plusem możemy zainsertować na podstawie tego co jest zaznaczone i też bez ID.
Zmieniamy coś i F6 czyli run.

Odświeżając mamy nasz zainteresowany wpis.
Też ciekawa opcja to edit czyli set zamiast insert i update.

Zmieniamy coś i poprawnie nam się z updatowało

W tych programach wszystko jest takie typu kliknij i nawet jak nie znasz poleceń to na podstawie tego co wygeneruje to sobie sami ogarniemy.

Ciekawostki do MongoDB i NoSQLBooster

Najechaliśmy na loc i wciskamy klawisz P i mamy podgląd geolokalizacji zapisanej WOW

Testowe dane zamiast szukania jakiś JSONów w necie fajne ? no fajne !

Domyślne name pierwsza kolumna była i zamieniłem na image i wybrałem image.image
Mamy różne źródła obrazów więc fajno

Tam collection tworzę nową na bazie test o jakiejś tam nazwie xddd

F6 run i czekamy na efekty
Z avatarami zadziałało i mamy wciskamy P i przekierowuje nas na uri

Co do zapytań do wiele nie ma co pisać, większość można wygenerować.

Mamy też możliwość wyświetlenia Query podobnego mocno do SQLa.
Najczęściej do testów może nam wystarczyć – jakaś akcja w aplikacji i odświeżanie i analiza czy wpis dodał się do kolekcji 🙂

I na tym zakończę ten wpis.

Polecam przejrzeć sekcje docs na stronie producenta.
https://docs.mongodb.com/manual/tutorial/query-documents/
O zapytaniach znajdziecie wszystko także w oficjalnej dokumentacji.

W następnym wpisie postaram się napisać coś więcej o mongo oraz na pewno poruszyć temat chunksów i plików binarnych oraz zobaczymy co jeszcze przyjdzie mi do głowy z rzeczy ważniejszych.

1 thought on “#MongoDB01 – Prawdopodobnie najpopularniejsza nierelacyjna baza danych. Krótkie omówienie, serwer lokalny, podstawy na przykładach.

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.