Celem listy jest praktyczne zapoznanie z NoSQL, na rozwiązanie zadań składać się powinny przygotowane wcześniej komendy, których działanie zostanie zaprezentowane na laboratorium. Zadania można rozwiązywać korzystając wyłącznie z konsoli Mongo lub po połączeniu się z bazą Mongo za pomocą wybranego języka programowania.
Po uzgodnieniu z prowadzącym laboratorium listę można wykonać z wykorzystaniem innego systemu nierelacyjnych baz danych – efekt wykonywania odpowiednich poleceń powinien pozostać bez zmian. W celu uzyskania oceny 5.0 z listy wykonaj 4 pierwsze zadania oraz 5 wybranych z pozostałych.
- Zainstaluj MongoDB. Utwórz bazę danych
MDBHobby
. W skład bazy danych powinny wchodzić 3 kolekcje:zwierzęta
,sport
,osoby
. Uwaga: dane do uzupełnienia bazy mogą być generowano losowo, częściowo wyeksportowane z rozwiązań list poprzednich lub pobrane (np. w formacie JSON) z gotowego źródła. W przypadku braku dokumentu w bazie spełniającego kryterium któregoś z zadań, dodaj odpowiednie dokumenty i powtórz zadanie.- Dodaj przynajmniej 10 sportów. Każdy dokument powinien zawierać przynajmniej informacje o nazwie, miejscu wykonywania (hala, na zewnątrz) oraz tego czy jest sportem indywidualny czy zespołowym – 2 ostatnie atrybuty mogą mieć więcej niż jedną wartość dla wybranych sportów. Dla wybranych sportów dodaj inne atrybuty.
- Dodaj przynajmniej 10 gatunków zwierząt. Gatunek może, lecz nie musi, dzielić się na różne rasy (uwzględnij w bazie przynajmniej jeden gatunek z rasami). Każdy dokument powinien zawierać informację o minimalnej i maksymalnej wadze, dopuszczalnej gamie ubarwienia oraz oczekiwanej długości życia.
- Dodaj do bazy danych przynajmniej 50osób, w każdym dokumencie powinno znajdować się przynajmniej imię i nazwisko, dodatkowo w większości dokumentów powinna być informacja o ich wieku, wzroście, zainteresowaniach (każda z osób ma więcej niż jedno zainteresowanie) oraz narodowości. Dla osób posiadających więcej niż jedno obywatelstwo uwzględnij te informacje korzystając z
array
, w przypadku krajów federalnych, jak np. USA, Niemcy, czy Rosja, wykorzystajembedded document
w celu podania również kraju związkowego. Korzystając z dokumentów zagnieżdżonych dodaj wszystkim posiadaczom zwierząt informację o gatunku oraz imieniu pupila lub pupili.- Wyświetl wszystkie kolekcje w
MDBHobby
. Wyświetl wszystkie nie puste kolekcje wMDBHobby
.- Utwórz zapytanie wyświetlające wszystkie znajdujące się w bazie koty wraz z ich posiadaczem.
- Wypisz wszystkie osoby o imieniu Jan i obywatelstwie polskim lub posiadające więcej niż 1 obywatelstwo. Zadbaj by nie wyświetlało się pole z identyfikatorem dokumentu.
- Wypisz sporty, którymi interesuje się przynajmniej 5 osób.
- Pamiętając, iż MongoDB nie udostępnia bezpośrednio funkcjonalności odpowiadającej
JOIN
om, dla każdej osoby o nazwisku Nowak wypisz hobby. W wyniku wypisz imię, nazwisko i narodowość oraz nazwę i typ (indwydidualny lub zespołowy) sportu. Zadbaj by nie przypisać hobby niewłaściwej osobie o tym samym nazwisku.- Usuń z bazy wszystkie osoby, które w hobby mają parę
['koszykówka', 'hokej']
.- Dla wszystkich osób, które mają w hobby zarówno strzelectwo jak i narciarstwo, zamień je na biatlon.
- Wszystkim osobom z Rosji usuń informację o kraju związkowym (zastąp ją tylko informacją o rosyjskim obywatelstwie).
- Wyświetl imiona i nazwiska oraz narodowość wszystkich miłośników psów, wyniki uporządkuj rosnąco względem wieku.
- Wyświetl osoby, których imiona i nazwiska nie zawierają liter v, x, q, ł, ą, z pominięciem tych, którzy mają obywatelstwo polskie. Możesz wykorzystać wyrażenia regularne.
Pliki ex-*.ts
zawierają implementację zadanych programów.
Uruchomienie powyższych programów działa na takiej samej zasadzie jak na liście zerowej.