Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. Zad1
  2. db.students_records.insertMany([
  3. {student: {id:161969, name:"Jakub", surname:"Kotowski"},
  4. courses: [{id:1, name:"AKO", year:2, semester:3,
  5. grades: {lecture:3, laboratory:3, project:3, exercises:3, exam:3},
  6. lecturer: {name:"Jacek", surname:"Placek", title: "Dr"}},
  7. {id:2, name:"NBD", year:4, semester:7,
  8. grades: {lecture:4, laboratory:5, project:4, exercises:4, exam:4},
  9. lecturer: {name:"Gacek", surname:"Stasiek", title: "Inz"}}]
  10. },
  11. {student: {id:160472, name:"Jan", surname:"Fan"},
  12. courses: [{id:3, name:"PP", year:1, semester:1,
  13. grades: {lecture:2, laboratory:2, project:2, exercises:2, exam:2},
  14. lecturer: {name:"Ziom", surname:"Bom", title: "Dr"}},
  15. {id:2, name:"NBD", year:4, semester:7,
  16. grades: {lecture:5, laboratory:5, project:5, exercises:5, exam:5},
  17. lecturer: {name:"Gacek", surname:"Stasiek", title: "Inz"}}]
  18. }])
  19.  
  20. Zad2
  21. Aby dowiedziec sie na jakim semestrze jest student, moim odnosnikiem beda oceny, ktore odnosza sie do kursow, ktore sa prowadzone na najwyzszym semenstrze dla konkretnego studenta.
  22. Zakladam, ze kiedy student przechodzi na nastepny semestr, to jest dla niego wstawiony wpis z pustymi ocenami (tak jak na MojaPG).
  23.  
  24. db.students_records.aggregate(
  25. [
  26. {
  27. $project: {
  28. "_id": 0,
  29. "student.id": 1,
  30. "student.name": 1,
  31. "student.surname": 1,
  32. "courses.year": 1,
  33. "courses.semester": 1
  34. }
  35. },
  36. {
  37. $unwind: {
  38. path: "$courses"
  39. }
  40. },
  41. {
  42. $group: {
  43. "_id": "$student.id",
  44. "year": { $max: "$courses.year" },
  45. "semester": { $max: "$courses.semester" },
  46. "name": { $last: "$student.name" },
  47. "surname": { $last: "$student.surname"}
  48. }
  49. }
  50. ]
  51. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement