TZT - Laboratorium 8 MongoDB: _id, DBRef, własne funkcje

Transkrypt

TZT - Laboratorium 8 MongoDB: _id, DBRef, własne funkcje
TZT - Laboratorium 8
MongoDB: _id, DBRef, własne funkcje (składowane na serwerze)
Mamy dwie kolekcje:
• wydzialy - http://icis.pcz.pl/~rperlinski/wydzialy.json
• studenci - http://icis.pcz.pl/~rperlinski/studenci.json
Powyższe kolekcje proszę zaimportować do bazy danych lab08. Na tych kolekcjach będziemy
pracować.
Zadanie 1
Dodajemy do kolekcji studenci jednego studenta z naszego wydziału. Narzędzie dowolne, referencja
powinna się zgadzać.
Zadanie 2
Proszę napisać funkcję idWydzialu(), która zwróci ID wydziału po nazwie jego skrótu. Przy braku
odpowiedniego skrótu powinna być zwracana wartość null.
Zadanie 3
Piszemy funkcję dostepneKierunki(), która wyświetli nazwy wszystkich wydziałów, ich skróty, a
także listę wszystkich kierunków każdego wydziału. Można skorzystać ze skryptów w mongo albo z
MonchChef. Przykładowy wynik:
LISTA WYDZIAŁÓW
Wydział Inżynierii Mechanicznej i Informatyki (WIMiI), 6 kierunków
* Energetyka
* Informatyka
* Inżynieria biomedyczna
* Matematyka
* Mechanika i budowa maszyn
* Mechatronika
Wydział Zarządzania (WZ), 7 kierunków
* Finanse i Rachunkowość
* Logistyka
Zadanie 4
Piszemy funkcję dodajStudenta(), która pozwoli na dodanie do kolekcji studenci jednej osoby.
Funkcja powinna przyjmować trzy parametry: imie, nazwisko, id_wydzialu. Wykorzystać utworzoną
funkcję do dodania dwóch studentów dwóch różnych wydziałów, np.:
dodajStudenta("Zenon", "Zarębski", ObjectId("583ada4ebeeec1288f74d8c1"));
dodajStudenta("Alina", "Adamczyk", idWydzialu("WIPiTM"));
Zadanie 5 – odczytanie prostej referencji
Proszę zrobić funkcję listaStudentow() wyświetlającą listę wszystkich studentów. Przy każdym
studencie należy wyświetlić skrót nazwy wydziału, na którym ma on zajęcia.
LISTA WSZYSTKICH STUDENTÓW
1. Jan Kowalski (WIMiI)
2. Halina Nowak (WIMiI)
3. Jolanta Zalewska (WIMiI)
4. Kamil Morzyk (WB)
5. Marek Chojnacki (WIPiTM)
. . .
Zdanie 6 – funkcja uruchamiana z bazy
Proszę napisać funkcję dodajStudentaWIMiI(), która doda studenta naszego wydziału do kolekcji
studenci. Funkcja przyjmuje imię i nazwisko dodawanego studenta. Funkcję należy zapisać w bazie
lab08 w kolekcji system.js. Funkcję proszę uruchomić z bazy, np.
db.eval(dodajStudentaWIMiI, 'Robert', 'Radecki');
Zadanie 7
Proszę dodać do jednego studenta pole znajomy zawierające referencję na pierwszą osobę z bazy
lab06 z kolekcji osoby. Korzystając z utworzonej referencji proszę utworzyć skrypt, który wyświetli
imię i nazwisko znajomego. Trzeba się odwołać do innej kolekcji w innej bazie.