MongoDB (Jteam)

843 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
843
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

MongoDB (Jteam)

  1. 1. Łukasz Pełszyński 1
  2. 2. NOSQL  NO to SQL? 2
  3. 3. NOSQL  NO to SQL? 3
  4. 4. NOSQL 4
  5. 5. NOSQL  Not Only SQL → Odpowiednie narzędzie do danego zadania 5
  6. 6. NOSQL  Not Only SQL → Odpowiednie narzędzie do danego zadania → Nie tylko SQL :) 6
  7. 7. NOSQL  Dlaczego właśnie teraz? → Ogromne ilości danych → Duże wzajemne zależności między danymi → Zmienna natura danych → Dostosowanie do nowej architektury aplikacji 7
  8. 8. :) 8
  9. 9. MongoDB  Stworzona z myślą o wydajności  Wysoce skalowalna  “Document oriented”  Bogaty język zapytań 9
  10. 10. MongoDB  Upraszcza tworzenie oprogramowania  Ale nie ma transakcji :) 10
  11. 11. MongoDB  MongoDB is designed to be human-oriented.  It reduces the burden of programming.  It tries to push jobs back to machines.  You can accomplish more tasks with less work, in smaller yet readable code. 11
  12. 12. Czas na praktykę  Stworzenie bazy: → use jteam; 12
  13. 13. Czas na praktykę  Stworzenie bazy: → use jteam;  Tworzymy dokument: → _doc = { name: 'Lukasz', position: 'boss', age: 24 }; 13
  14. 14. Czas na praktykę  Stworzenie bazy: → use jteam;  Tworzymy dokument: → _doc = { name: 'Lukasz', position: 'boss', age: 24 };  Wstawiamy do nowej kolekcji: → db.users.save(_doc); 14
  15. 15. Czas na praktykę  Stworzenie bazy: → use jteam;  Tworzymy dokument: → _doc = { name: 'Lukasz', position: 'boss', age: 24 };  Wstawiamy do nowej kolekcji: → db.users.save(_doc);  Znajdujemy wstawiony rekord: → db.users.find(); 15
  16. 16. Więcej rekordów names = [ 'Ala', 'Ola', 'Ela', 'Zenek', 'Zdzisław', 'U1', 'U2', 'U3', 'U4', 'U6' ]; for (index in names) { db.users.save({ name: names[index], age: 20 + parseInt(index), gender: 'unknown' }); }; 16
  17. 17. Zapytania  Zapytania są dynamiczne: → var cursor = db.users.find(); → cursor.hasNext(); → cursor.next(); → db.users.find().forEach( function(x) { print(tojson(x)); } ); 17
  18. 18. Zapytania c.d.  Proste wyszukiwanie: → db.users.find({age: 24}); → db.users.find({age: 24}).limit(1); → db.users.find({age: 24}).sort({age: -1, name: -1}); → db.users.findOne({name:'Zenek'}); 18
  19. 19. Zapytania c.d.  Proste wyszukiwanie: → db.users.find({age: 24}); → db.users.find({age: 24}).limit(1); → db.users.find({age: 24}).sort({age: -1, name: -1}); → db.users.findOne({name:'Zenek'});  Operator $in: → db.users.find({name: {'$in': ['Lukasz', 'Ala']} }); 19
  20. 20. Zapytania c.d.  Proste wyszukiwanie: → db.users.find({age: 24}); → db.users.find({age: 24}).limit(1); → db.users.find({age: 24}).sort({age: -1, name: -1}); → db.users.findOne({name:'Zenek'});  Operator $in: → db.users.find({name: {'$in': ['Lukasz', 'Ala']} });  Where (używać jak najrzadziej) → db.users.find( { $where: "this.age > 3" }; 20
  21. 21. Zapytania c.d.  > → db.users.find({ 'age' : { $gt: 24 } } );  <= → db.users.find({ 'age' : { $lte: 24 } } ); 21
  22. 22. Zaawansowane zapytania  _rec = { name: 'Lukasz', grad_years: [2005, 2010], conferences: { 2010: 'geecon', 2009: 'rupy', unknown: 'wtf' } };  db.users.save(_rec); 22
  23. 23. Zaawansowane zapytania c.d.  Hmm... → db.users.find({'conferences.2010' : 'geecon' }) ; 23
  24. 24. Zaawansowane zapytania c.d.  ?! → db.users.find({'conferences.2010' : 'geecon' }) ; → db.users.find({'grad_years.0': 2005 }) ; 24
  25. 25. Zaawansowane zapytania c.d.  WTF?! → db.users.find({'conferences.2010' : 'geecon' }) ; → db.users.find({'grad_years.0': 2005 }) ; → db.users.find({"conferences.2010 ": "geecon", grad_years: 2005 }) ; 25
  26. 26. MongoDB + Java  Doskonałe wsparcie dla wszystkich popularnych języków → http://www.mongodb.o rg/display/DOCS/Driv ers 26
  27. 27. W akcji 27
  28. 28. Pytania? 28

×