Yksi hyvä paikka lähteä liikkeelle on MongoDB:n dokumentaation sivu Getting Started. Sivulla on myös selaimessa toimiva MongoDB-tulkki, jonka avulla voit suorittaa tämän tehtävän.
Jokaisessa osatehtävässä käännä annetut SQL-komennot MongoDB-kielelle. Varmista MongoDB-tulkin avulla, että komentosi toimivat. Saat kaikista osatehtävistä 2 pistettä paitsi viimeisestä osatehtävästä 3 pistettä.
sqlite> CREATE TABLE Tyontekijat (id INTEGER PRIMARY KEY, nimi TEXT, yritys TEXT, palkka INTEGER); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Maija', 'Google', 8000); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Uolevi', 'Amazon', 5000); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Kotivalo', 'Google', 7000); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Kaaleppi', 'Facebook', 6000); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Liisa', 'Amazon', 9000); sqlite> INSERT INTO Tyontekijat (nimi, yritys, palkka) VALUES ('Anna', 'Amazon', 6500);
Kirjoita kuusi insertOne-komentoa, jotka lisäävät tiedot kokoelmaan db.tyontekijat. Huomaa, että MongoDB:ssä kokoelmaa ei tarvitse erikseen luoda, vaan se syntyy automaattisesti.
insertOne
db.tyontekijat
sqlite> SELECT * FROM Tyontekijat; id nimi yritys palkka ---------- ---------- ---------- ---------- 1 Maija Google 8000 2 Uolevi Amazon 5000 3 Kotivalo Google 7000 4 Kaaleppi Facebook 6000 5 Liisa Amazon 9000 6 Anna Amazon 6500
Kirjoita find-komento, joka hakee kaiken sisällön kokoelmasta.
find
sqlite> UPDATE Tyontekijat SET palkka=5500 WHERE nimi='Uolevi'; sqlite> SELECT * FROM Tyontekijat; id nimi yritys palkka ---------- ---------- ---------- ---------- 1 Maija Google 8000 2 Uolevi Amazon 5500 3 Kotivalo Google 7000 4 Kaaleppi Facebook 6000 5 Liisa Amazon 9000 6 Anna Amazon 6500
Kirjoita updateOne-komento, joka muuttaa kokoelman sisältöä, ja sen jälkeen taas find-komento.
updateOne
sqlite> SELECT nimi, palkka FROM Tyontekijat WHERE yritys='Amazon'; nimi palkka ---------- ---------- Uolevi 5500 Liisa 9000 Anna 6500
Kirjoita find-komento, joka hakee nimen ja palkan jokaisesta Amazonin työntekijästä. Komento ei saa hakea muuta tietoa.
sqlite> SELECT COUNT(*) FROM Tyontekijat WHERE yritys='Google'; COUNT(*) ---------- 2
Kirjoita count-komento, joka hakee Googlen työntekijöiden määrän.
count
sqlite> SELECT nimi, yritys FROM Tyontekijat WHERE palkka>6000; nimi yritys ---------- ---------- Maija Google Kotivalo Google Liisa Amazon Anna Amazon
Kijoita find-komento, joka hakee niiden työntekijöiden nimen ja yrityksen, joiden palkka on yli 6000.
sqlite> SELECT yritys, COUNT(*), MAX(palkka) FROM Tyontekijat GROUP BY yritys; yritys COUNT(*) MAX(palkka) ---------- ---------- ----------- Amazon 3 9000 Facebook 1 6000 Google 2 8000
Kirjoita aggregate-komento, joka hakee jokaisen yrityksen työntekijöiden määrän ja työntekijän suurimman palkan.
aggregate
The deadline for this task has passed but you can still check your answers