MongoDB. Narzędzia i biblioteki
|
|
- Jerzy Szewczyk
- 8 lat temu
- Przeglądów:
Transkrypt
1 ongodb. Narzędzia i biblioteki 1/99 MongoDB. Narzędzia i biblioteki Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 29 listopada 2016
2 MongoDB. Narzędzia i biblioteki 2/99 Plan prezentacji 1 MongoDB 2 MongoDB shell 3 Narzędzia administracyjne od twórców MongoDB darmowe od innych dostawców komercyjne do przeglądania danych 4 Biblioteki do pracy z MongoDB mongodb easymongo mongoose 5 Transakcje 6 Zapytania z polami tablic 7 Referencje w MongoDB 8 Źródła
3 MongoDB. Narzędzia i biblioteki 3/99 Importowanie danych do MongoDB Importowanie danych zawartych w plikach JSON poleceniem mongoimport Przykład: mongoimport --db test --collection restaurants --drop --file restaurants-dataset.json Polecenie mongoimport: wstawia dokumenty do bazy test, do kolekcji restaurants, jeśli kolekcja restauracje już istaniała to zostanie usunięta: --drop, dane zawarte w pliku restaurants-dataset.json, parametr --file, dane w pliku to lista dokumentów nie oddzielonych przecinkiem, łączy się z mongod uruchomionym na localhost, port 27017, parametry --host i --port w razie potrzeby.
4 MongoDB. Narzędzia i biblioteki 4/99 Exportowanie danych z MongoDB Exportowanie danych znajdujących się w bazie MongoDB mongoexport Przykład: mongoexport --db test --collection restaurants --query '{"dzielnica":"bronx"}' --fields dzielnica,adres --out bronxrestaurants.json Polecenie mongoexport: zapisuje kolekcję restaurants z bazy test w pliku tekstowym, dane zapisywane są w pliku bronxrestaurants.json, parametr --out, (domyślnym formatem jest JSON), parametr --query pozwala wprowadzić zapytanie w formacie JSON ograniczające liczbę dokumentów pobranych z kolekcji, parametr --fields pozwala określić, które pola dokumentu mają być eksportowane, łączy się z mongod uruchomionym na localhost, port 27017, parametry --host i --port w razie potrzeby.
5 MongoDB. Narzędzia i biblioteki 5/99 MongoDB shell (mongo) MongoDB shell: interakcyjne narzędzie dla MongoDB, interfejs w JavaScript, składowy komponent pakietu MongoDB, pozwala na pobieranie, aktualizację danych, operacje administracyjne, uruchamiane poleceniem mongo, domyślnie łączy się z localhost na porcie 27017, instancja MongoDB musi być uruchomiona, zawiera polecenie help, klawisz <tab> dopełnia polecenia.
6 MongoDB. Narzędzia i biblioteki 6/99 Wybrane polecenia w mongo shell I Polecenia w mongo: help - wyświetla pomoc, klawisz TAB dopełnia polecenia, show dbs - wyświetla listę baz, use test - przełącza na bazę test, show collections - wyświetla listę kolekcji, db.help() - wyświetla listę dostępnych metod dla bazy danych, db.dropdatabase() - uwuwa bieżącą bazę danych, db.getname() - wyświetla nazwę bieżącej bazy, db.stats() - wyświetla statystyki bieżącej bazy, db.hostinfo() - informacje o serwerze, db.version() - wyświetla wersję serwera.
7 MongoDB. Narzędzia i biblioteki 7/99 Wybrane polecenia w mongo shell II Polecenia w mongo: db.osoby.help() - wyświetla listę dostępnych metod dla kolekcji osoby, db.osoby.count() - wyświetla liczbę dokumentów w kolekcji, db.osoby.find() - wyświetla zawartość kolekcji osoby, db.osoby.find({"imie":"wojciech"}) zwraca te dokumenty, które spełniają warunek, db.osoby.remove() - usuwa dokumenty z kolekcji, db.osoby.drop() - usuwa kolekcję osoby z bazy danych, db.osoby.insert({ "imie": "Wojciech", "nazwisko": "Paluch", "dataur": "1985/07/14", "kraj": "Polska" }) - wstawia dane do kolekcji, db.osoby.getindexes() - wyświetla informacje o indeksach kolekcji osoby.
8 MongoDB. Narzędzia i biblioteki 8/99 Polecenia systemowe w mongo shell Polecenia systemowe w mongo shell: ls() - lista zawartości bieżącego katalogu jako tablica JSON, listfiles() - lista zawartości bieżącego katalogu, jako tablia JSON, każde pole to obiekt (nazwa, wielkość, czy jest katalogiem), pwd() - pokazje bieżący katalog, cd() - zmiana katalogu, np. cd("pulpit"), cd(".."), cat() - wyświetla zawartość pliku, np. cat("plik.json"), mkdir() - tworzy katalog, np. mkdir("templates"), removefile() - usuwa plik, katalog, np. removefile("abc.json"), exit, quit() - wyłącza mongo shell.
9 MongoDB. Narzędzia i biblioteki 9/99 Skrypty w mongo shell Skrypty w mongo shell: korzystają z poleceń mongo shell i języka JavsScript, uruchamiamy z terminala: mongo [--quiet] < skrypt.js Przykład 1: skrypt.js use lab06 print('liczba dokumentów w kolekcji osoby, polecenie:'); db.osoby.count() Przykład 2: skrypt.js - wykorzystanie języka JavaScript print('nazwy wszystkich osób z kolekcji'); var cursor = db.osoby.find( {}, {_id:0,nazwa:1} ) while (cursor.hasnext()) { print(tojson(cursor.next())); }
10 MongoDB. Narzędzia i biblioteki 10/99 Narzędzia dla bazy MongoDB Serwer MongoDB nie dostarcza narzędzia z GUI do zarządzania danymi czy ich przeglądania. Wszystkie operacje na bazie wykonuje się z wykorzytaniem mnogo shell. Narzędzi dla MongoDB jest bardzo dużo. Niektóre są komercyjne, inne darmowe, tworzone przez społeczności. Nietkóre służą do administracji, inne do przeglądania danych.
11 MongoDB. Narzędzia i biblioteki 11/99 Narzędzia dostarczone przez zespół MongoDB MongoDB Compass (dostępne na Windows i Mac OS): graficzny przegląd danych, wykonywanie operacji CRUD na danych, szczegółowe informacje o indeksach, wykonywanie zapytań ad hoc, wyświetla graficzne plany wykonania zapytania aby ułatwić poprawę jego wydajności.
12 MongoDB. Narzędzia i biblioteki 12/99 Narzędzia dostarczone przez zespół MongoDB MongoDB Atlas (hosting MongoDB od twórców bazy), GUI pozwala na: konfigurację i zarządzanie klastrem, skalowanie z automatycznym współdzieleniem, monitorowanie wykorzystania bazy uruchomionej w MongoDB Atlas, zarządzanie kopiami bezpieczeństwa i odzyskiwanie danych, konfigurowanie zabezpieczeń.
13 MongoDB. Narzędzia i biblioteki 13/99 Narzędzia dostarczone przez zespół MongoDB MongoDB Cloud Manager: platforma do zarządzania MongoDB, działa w chmurze, monitorowanie wykorzystania baz i ustawianie określonych ostrzeżeń, automatyzacja ustawiania bazy i zarządzania nią, wizualizacja wydajności zapytań i wygodniejsze ich optymalizowanie, zarządzanie procesem automatyzacji wykonywania kopii bezpieczeństwa i odzyskiwania danych.
14 MongoDB. Narzędzia i biblioteki 14/99 Darmowe narzędzia innych dostawców Mongoclient - przeglądanie danych, wsparcie przy tworzeniu zapytań, statystyki bazy mongo-express - przeglądanie i modyfikowanie danych adminmongo - działające w przeglądarce, napisane w Node.js Edda - wizualizacja logów, raczej nam się nie przyda Fluentd - narzędzie do zarządzania logami, ma integrację z MongoDB (logi są zapisywane w MongoDB) HumongouS.io - interfejs użytkownika bazy MongoDB w przeglądarce - warto sprawdzić, działa online, zakłada się konto i już, ładnie wygląda Fang of Mongo - interfejs do MongoDB w przeglądarce, chyba tylko przeglądanie danych
15 MongoDB. Narzędzia i biblioteki 15/99 Darmowe narzędzia innych dostawców UMongo - napisany w Javie, nierozwijany, trochę przestarzały ale ma bogatą funkcjonalność MongoHub - GUI do MongoDB pod OSX, wydaje się fajne ale nie było jak przetestować MongoVision - narzędzie do zarządzania MongoDB, działa w przeglądarce, chyba tylko do przeglądania danych MongoVUE - GUI do MongoDB napisane w.net Mongo Explorer - plugin do WebStorm NoSQL Manager for MongoDB - porządne narzędzie komercyjne, 30-dniowy trial, tylko na Windows mviewer - proste narzędzie administracyjne do MongoDB
16 MongoDB. Narzędzia i biblioteki 16/99 Darmowe narzędzia innych dostawców PHPMoAdmin - narzędzie do administracji MongoDB napisane w PHP (tylko jeden plik) PHPmongoDB - zarządznie MongoDB w przeglądarce, napisane w PHP RockMongo - program do zarządzania MongoDB, napisany w PHP, instalka zawiera jakieś wirusy... Genghis - samodzielny program działający w przeglądarce, na bazie Ruby albo PHP, bardzo prosta funkcjonalność Meclipse - plugin do Eclipse Humongous - przeglądarka danych z MongoDb napisana w Ruby MongoDB ODA plugin for BIRT - plugin do Eclipse mongobird - z jakiejść chińskiej strony, nie udało się pobrać mongoowl - j.w. (nie udało się pobrać) Robomongo - dość proste ale wygodne GUI do zarządzania bazą MongoDB, jest zbudowane wokół mnogo shell
17 MongoDB. Narzędzia i biblioteki 17/99 Darmowe narzędzia innych dostawców Toad Mac Edition - narzędzie do pracy z bazami danych, tutaj werjs na Mac OS, która uwzględnia też MongoDB Opricot - GUI napisne w PHP do obsługi MongoDB Moa(db) - GUI działające w przeglądarce napisane w PHP... trzeba mieć serwer PHP postawiony MongoApp - pozwala na uruchomienie MongoDB z wykorzystaniem graficznego interfejsu, działa na Mac OS Mongri - interfejs do obsługi MongoDB w przeglądarce, wykorzystuje Node.js, nic wyjątkowego MongoCMS - panel administratora dla systemów CMS napisany do użycia z MongoDB i Node.js NoSQL Viewer - tylko na windows, pozwala na przeglądanie danych ale na różne sposoby, wiele różnych baz NoSQL
18 MongoDB. Narzędzia i biblioteki 18/99 Robomongo - przegląd i edycja danych Funkcjonalność podobna do mongo shell ale dobrze przygotowany przegląd danych (na trzy sposoby), możliwość łatwej edycji danych, wygodny wybór baz i kolekcji
19 MongoDB. Narzędzia i biblioteki 19/99 Narzędzia komercyjne 3T MongoChef (Free Edition) - najlepsze narzędzie jakie znalazłem Database Master - potężne i zrozbudowane narzędzie ale działa w.net czyli generalnie na Windows, trial działa 30 dni DbSchema - tylko na 15 dni, napisane w Javie, generuje schematy modeli danych do chyba wszystkich baz dostępnych na rynku, rozbudowane i na pewno użyteczne narzędzie... MongoDBPumper for Oracle - transfer danych między Oracle i MongoDB json Studio - komercyjne, nie ma wersji trialowej,... MongoBooster - fajne narzędzie, rozbudowane, ma darmową wersję, warto zainstalować MongoMonitor - połączenie z bazą MongoDB z iphone Mongo Management Studio - Community Edition - fajne narzędzie, działa w przeglądarce, wykorzystuje Node.js, ładne graficznie
20 MongoDB. Narzędzia i biblioteki 20/99 MongoChef Core MongoChef Core (Free Edition) - super narzędzie, warto się tym pobawić bardzo wygodny przegląd danych importowanie i eksportowanie w JSON i CSV bardzo wygodne wprowadzanie zapytań łącznie z możliwością ich graficzengo utworzenia walidacja poprawności wprowadzanych zapytań wsparcie do pracy z narzędziem mongo shell darmowa wersja do użytku niekomercyjnego statystyki wykorzystania serwera
21 MongoDB. Narzędzia i biblioteki 21/99 MongoChef Core - przegląd danych, zapytania Lista baz i kolekcji, indeksy, zapytania z projekcją, sortowaniem i limitem
22 MongoDB. Narzędzia i biblioteki 22/99 MongoChef Core - graficzne budowanie zapytań Mamy możliwość budowania zapytania z pomocą graficznego narzędzia
23 MongoDB. Narzędzia i biblioteki 23/99 MongoChef Core - graficzne budowanie zapytań Ładny i czytelny przeląd statystyk serwera
24 MongoDB. Narzędzia i biblioteki 24/99 MongoChef Core - graficzne budowanie zapytań Wsparcie dla strumienia agregacji
25 MongoDB. Narzędzia i biblioteki 25/99 MongoBooster I Lista baz, kolekcji i indeksów, różny sposób przeglądania dokumentów
26 MongoDB. Narzędzia i biblioteki 26/99 MongoBooster II Statystyki serwera, analiza statystyczna kolekcji, inmortowanie, eksportowanie, podgląd dokumentów w formacie JSON,...
27 MongoDB. Narzędzia i biblioteki 27/99 Narzędzia do przeglądania danych Narzędzia do przeglądania danych: Mongs ( działa w przeglądarce vulture (sęp), działa w przeglądarce
28 MongoDB. Narzędzia i biblioteki 28/99 Mongs - przeglądanie danych Mongs: adres: do przelądania danych, działa w przeglądarce, na porcie 29017, napisana w języku python (framework Aspen), instalacja: $ git clone $ cd mongs $ make run adres w przeglądarce: zapytania:
29 mongs - przeglądanie danych MongoDB. Narzędzia i biblioteki 29/99
30 MongoDB. Narzędzia i biblioteki 30/99 Vulture - przeglądanie danych Vulture: adres: zaawansowane narzędzie do przelądania danych w interfejsie webowym (przeglądarka), domyślnie działa na porcie 8000, zainspirowany projektem mongs ale ma więcej funkcji, napisany w języku Go, wspiera indeksy GeoJson, pokazuje proste statystyki, udostępnia dane również po REST API, pozwala na łatwe filtrowanie danych, wspiera strumień agregacji z MongoDB, instalacja: ściąga się paczkę, rozpakowuje i uruchamia dane binarne.
31 Vulture - przeglądanie danych MongoDB. Narzędzia i biblioteki 31/99
32 Vulture - przegląd wybranych pól MongoDB. Narzędzia i biblioteki 32/99
33 MongoDB. Narzędzia i biblioteki 33/99 Vulture - REST API Dane dostępne w formacie JSON (REST API), przykład dla adresu: {"document":{ "_id":"54531ba74f495b15ca8c3a4c", "address":"7881 Jewess Meadows Suite 834\nNorth Emmett, MA 77794", "birthdate":" ", "height": , "i":7550, "mail":"tschuster@gmail.com", "name":"rettie Hilpert", "position":{"coordinates":[ , ], "type":"point"}, "sex":"f", "username":"inez40"}, "enlapsed_time": , "meta":{ "count":10000,"indexes":[ {"keys":["_id"],"name":"_id_","unique":false}, {"keys":["$2dsphere:position"], "name":"position_2dsphere","unique":false}]} }
34 Vulture - statystyki MongoDB. Narzędzia i biblioteki 34/99
35 Vulture - dane przestrzenne - OpenStreetMap MongoDB. Narzędzia i biblioteki 35/99
36 Vulture - potok agregacji MongoDB. Narzędzia i biblioteki 36/99
37 MongoDB. Narzędzia i biblioteki 37/99 Pakiety npm związane z MongoDB Na stronie jest 4800 wyników dla słowa mongo. Niektóre wybrane biblioteki: mongodb - oficjalny sterownik MongoDB - mongoose - dobry do REST API itp. działa na schematach - mongojs - emuluje oficjalne API, łatwo używać - mongo-querystring - zapytania zapisane w adresie URL są zamieniane na obiekty zapytania - easymongo - bardzo prosta w użyciu, udostępnia najważniejsze operacje na kolekcjach, wystarczy do podstawowej pracy -
38 MongoDB. Narzędzia i biblioteki 38/99 Oficjalny sterownik MongoDB dla Node.js Oficjalny sterownik MongoDB dla Node.js: oferuje obsługę bazy MongoDB za pomocą wywołań zwrotnych oraz obietnic, pozwala to na wykorzystanie wszystkich zalet ES6, zawiera wsparcie dla specyfikacji wspóldzielonego API CRUD zawiera wsparcie dla Server Discovery and Monitoring Specification, obecna wersja sertownika to 2.2, instalacja: npm install mongodb --save
39 MongoDB. Narzędzia i biblioteki 39/99 Najważniejsze metody klasy Collection I Najważniejsze metody klasy Collection (większość zwraca obietnice): aggregate(pipeline, options, callback) - wykonuje potok agregacji, zwraca AggregationCursor, count(query, options, callback) - zwraca liczbę dokumentów spełniających zapytanie, createindex(fieldorspec, options, callback) - tworzy indeks na danej kolekcji, dropindex(indexname, options, callback) - usuwa indeks z danej kolekcji, find(query) - tworzy kursor, którego używamy do pobrania danych, findone(query, options, callback) - pobiera jeden dokument, pozostałe: findandmodify, findandremove, findoneanddelete, findoneandreplace, findoneandupdate deleteone(filter, options, callback) - usuwa jeden dokument,
40 MongoDB. Narzędzia i biblioteki 40/99 Najważniejsze metody klasy Collection II deletemany(filter, options, callback) - usuwa naraz wiele dokumentów, insertone(doc, options, callback) - wstawia pojedynczy dokument, insertmany(docs, options, callback) - wstawia naraz wiele dokumentów, updateone(filter, update, options, callback), updatemany(filter, update, options, callback), drop(options, callback) - usuwa całą kolekcję, remove(selector, options, callback) - usuwa dokument lub dokumenty, przestarzała, rename(newname, options, callback) - zmienia nazwę kolekcji, replaceone(filter, doc, options, callback) - zamienia dopasowany na podany dokument.
41 MongoDB. Narzędzia i biblioteki 41/99 Najważniejsze metody klasy Cursor I Najważniejsze metody klasy Cursor (większość zwraca obietnice): count(applyskiplimit, options, callback) - liczba dokumentów tego kursora, each(callback) - iteruje po wszystkich elementach kursora, zaczyna od bieżącego położenia kursora, foreach(iterator, callback) - przechodzi przez wszystkie dokumenty kursora używając iteratora (w szablonie funkcji zwrotnej), hasnext(callback) - sprawdza czy są w kursorze jeszcze jakieś dokumenty, next(callback) - pobiera następny dokument z kursora albo zwraca null jeśli brak, toarray(callback) - zwraca całą tablicę dokumentów, które są pod kursorem, filter(filter) - pozwala na ustawienie zapytania, które ustala dokumenty kursora, project(value) - ustala pola dokumentów dostępnych przez kursor.
42 MongoDB. Narzędzia i biblioteki 42/99 Połączenie się z bazą danych w adresie url określamy: sterownik, nazwę hosta, port i bazę danych, z którą chcemy się połączyć, metoda connect() wykorzystuje adres url, po połączeniu wywołuje funkcję mającą dostęp do bazy (obiekt db) albo zwraca błąd (err) db.close() - zamyka połączenie var MongoClient = require('mongodb').mongoclient, assert = require('assert'); // Dane do połączenia w adresie URL var url = 'mongodb://localhost:27017/lab08'; MongoClient.connect(url, function(err, db) { assert.equal(null, err); console.log("nawiązano połączenie z serwerem"); //... db.close(); });
43 MongoDB. Narzędzia i biblioteki 43/99 Pobranie danych z kolekcji łączymy się z bazą, obiekt db przekazujemy do tworzonej funkcji wywołanie funkcj zwrotnie zamknie połączenie z bazą danych MongoClient.connect(url, function(err, db) { assert.equal(null, err); console.log("nawiązano połączenie z serwerem"); listamiejsc(db, function() { db.close(); }); }); Lista miejsc: [ { _id: 583c99f27ef6aaeb8d657ee6, nazwa: 'Zielona Góra', url: ' },... ]
44 MongoDB. Narzędzia i biblioteki 44/99 Pobranie danych z kolekcji - find().toarray() funkcja listamiejsc posiada dwa parametry: db - pozwoli na dostęp do bazy danych, callback - wywołanie zwrotne, pozwoli zamknąć połączenie z bazą metoda db.collection(<kol>) pozwala na dostęp do wybranej kolekcji metoda find() zwraca kursor kursor poprzez metodę toarray() zwraca tablicę dokumentów albo błąd, trzeba zapewnić odpowiedną ilość pamięci do przechowania wyników var listamiejsc = function(db, callback) { var collection = db.collection('miejsca'); } collection.find({}).toarray(function(err, miejsca) { assert.equal(err, null); console.log("lista miejsc:"); console.log(miejsca) callback(); // callback(miejsca); });
45 MongoDB. Narzędzia i biblioteki 45/99 Pobranie danych z kolekcji - find().next() tworzymy kursor metodą find() wykorzystując kursor odczytujemy tylko jeden dokument metoda next() kursora pozwala na dostęp do jednego pobranego dokumentu z pobranego dokumenty wyświetlamy nazwę i adres url var listamiejsc2 = function(db, callback) { var collection = db.collection('miejsca'); } var cur = collection.find({}); console.log("lista miejsc:"); cur.next(function(err, m) { assert.equal(err, null); console.log(m.nazwa+" - "+m.url); callback(); // callback(miejsca); }); Lista miejsc: Zielona Góra -
46 MongoDB. Narzędzia i biblioteki 46/99 Pobranie danych z kolekcji - find().each() tworzymy kursor metodą find() wykorzystując kursor odczytujemy wszystkie dokumenty, jeden po drugim metoda each() kursora przechodzi przez całą kolekcję z pobranego dokumenty wyświetlamy nazwę i adres url var listamiejsc3 = function(db, callback) { var collection = db.collection('miejsca'); // var cur = collection.find({}); // pakiet 'node-regexp' var cur = collection.find({nazwa:regexp().end("wa").toregexp()}); console.log("lista miejsc:"); cur.each(function(err, m) { assert.equal(err, null); if(m!==null) console.log(m.nazwa+" - "+m.url); callback(); // callback(miejsca); }); } Lista miejsc: Warszawa - Częstochowa -
47 MongoDB. Narzędzia i biblioteki 47/99 Dodawanie pojedynczego dokumentu - insertone() metoda indertone() zwraca błąd albo liczbę dodanych dokumentów, posiada dwa parametry nie ma tutaj wywołania zwrotnego po zakończeniu dodawania var dodajmiejsce = function(db, callback) { var collection = db.collection('miejsca'); } collection.insertone( {nazwa:"zamość", url:" function(err, r) { assert.equal(null, err); assert.equal(1, r.insertedcount); } ); db.close(); console.log("dodano dokument");
48 MongoDB. Narzędzia i biblioteki 48/99 Usunięcie pojedynczego dokumentu - deleteone() metoda deleteone() zwraca błąd albo liczbę usuniętych dokumentów, posiada dwa parametry nie ma tutaj wywołania zwrotnego po zakończeniu dodawania var usunmiejsce = function(db, idmiejsca, callback) { var collection = db.collection('miejsca'); } collection.deleteone({_id: idmiejsca}, function(err, r) { assert.equal(null, err); assert.equal(1, r.deletedcount); db.close(); console.log("usunięto dokument"); }); // wywołanie usunmiejsce(db, ObjectID("583cf53635c763404b57c13b"));
49 MongoDB. Narzędzia i biblioteki 49/99 Modyfikacja pojedynczego dokumentu - updateone() metoda updateone() zwraca błąd albo liczbę zmodyfikowanych dokumentów, posiada trzy parametry nie ma tutaj wywołania zwrotnego po zakończeniu dodawania var dodajkraj = function(db, miejsce, kraj, callback) { var collection = db.collection('miejsca'); collection.updateone( {"nazwa":miejsce}, {$set: {"kraj": kraj}}, function(err, r) { assert.equal(null, err); assert.equal(1, r.matchedcount); assert.equal(1, r.modifiedcount); db.close(); console.log("dodano nazwę kraju"); } ); } // wywołanie dodajkraj(db, "Warszawa", "Polska");
50 MongoDB. Narzędzia i biblioteki 50/99 easymongo easymongo: prosta biblioteka do obsługi MongoBD z Node.js jest nadbudówką dla oficjalnego sterownika do MongoDB napisana na licencji MIT instalacja: npm i --save easymongo składa się z dwóch klas: Client i Collection
51 MongoDB. Narzędzia i biblioteki 51/99 easymongo - klasa Collection Konstruktor klasy Client(serwer, [opcje]), posiada dwa argumenty: serwer - ustawienia połączenia do serwera string zawierający URL połączenia mongodb://[username:password@]host1[:port1][/[database][?options]] obiekt JSON określający serwer {host: host1, port:27017, dbname: database } [opcje] - określa opcje połączenia, opcjonalny, Klasa Client, metody: collection(nazwa) - zwraca nową instancję klasy Collection, open(nazwa) - zwraca obietnicę, która pozwala na dostęp do kolekcji bazy MongoDB o podanej nazwie, close() - zamyka połączenie z bazą MongoDB.
52 MongoDB. Narzędzia i biblioteki 52/99 easymongo - przygotowanie Dostęp do bazy MongoDB: const Client = require('easymongo'); var mongo = new Client({dbname: 'uczelnia'}); // var mongo = new Client({host: 'localhost', port:27017, dbname: 'uczelnia'}); // var mongo = new Client('mongodb://localhost:27017/uczelnia'); var pracownicy = mongo.collection('pracownicy'); zwracamy klasę klienta do bazy MongoDB (Client), wykorzystujemy konstruktor klasy MongoClient(), do połączenia się z bazą, tworzymy nową instancję klasy Collection dla kolekcji pracownicy.
53 MongoDB. Narzędzia i biblioteki 53/99 easymongo - klasa Collection Klasa Collection, metody: find([war][, opcje]) - zwraca tablicę dokumentów spełniających podany warunek, findone([war][, opcje]) - zwraca pierwszy dokument spełniający podany warunek, findbyid(oid[, pola]) - zwaraca dokument o podanym ID, save(data) - zapisuje podany dokument w kolekcji, update(war, data) - aktualizuje dokumenty spełniające warunek, remove([war]) - usuwa dokument według podanych parametrów, removebyid(oid) - usuwa dokument po jesto ID, count([war]) - zwaraca liczbę dokumentów spełniających warunek podany w parametrach. Wszystkie metody zwracają obietnice.
54 MongoDB. Narzędzia i biblioteki 54/99 easymongo - klasa Collection, opcje metody find() Klasa Collection, opcje dostępne dla metod z rodziny find(): limit - określamny limit liczby zwracanych dokumentów, skip - podajemy, ile dokumentów ma być pominiętych, sort - pozwala ustalić kolejność zwracanych dokumentów, fields - podajemy w tablicy, które pola dokumetów mają być zwracane.
55 MongoDB. Narzędzia i biblioteki 55/99 Klasa ObjectID z oficjalnego sterownika Konstruktor klasy ObjectID() tworzy nowy obiekt z unikalnym numer dokumentu do bazy MongoDB: var ObjectID = require('mongodb').objectid, assert = require('assert'); // Tworzy nowy ObjectID var objectid = new ObjectID(); // Sprawdza czy zapis heksadecymalny jest 24 znakowy assert.equal(24, objectid.tohexstring().length); Dokumentacja:
56 MongoDB. Narzędzia i biblioteki 56/99 easymongo - save() Metoda save(): app.get('/zapisz', function (req, res) { var data = { imie: 'Wojciech', nazwisko: 'Kowalski', url: ' // var data = { imie: 'Wojciech', nazwisko: 'Kowalski', url: ' rand: Math.random()}; // var data = {_id: new ObjectID(), imie: 'Wojciech', nazwisko: 'Kowalski', url: ' pracownicy.save(data).then(function(result) { console.log(result); res.send('dane pracownika zostały zapisane'); }); }) Zapisane dane: { _id: 582f032d67aec631b , imie: 'Wojciech', nazwisko: 'Kowalski', url: ' }
57 MongoDB. Narzędzia i biblioteki 57/99 easymongo - find() Metoda find(): app.get('/znajdz', function (req, res) { pracownicy.find({imie: 'Wojciech'}, {limit: 5, sort:{nazwisko:1}).then(function(result) { // Zawsze zwraca tablicę dokumentów console.log(result); res.send('dane pracownika zostały znalezione'); }); }) Znalezione dane: [ { _id: 582f032d67aec631b , imie: 'Wojciech', nazwisko: 'Kowalski', url: ' }, { _id: 582f0374a53b1b31db27128e, imie: 'Wojciech', nazwisko: 'Nowak', url: ' } ]
58 MongoDB. Narzędzia i biblioteki 58/99 easymongo - findbyid() Metoda findbyid(): app.get('/znajdzpoid', function (req, res) { pracownicy.findbyid('582f032d67aec631b ').then(function(result) { // Zwraca pobrany dokument albo false w przypadku błędu console.log(result); res.send('pracownik został znaleziony'); }); }) Znaleziony dokument: { _id: 582f032d67aec631b , imie: 'Wojciech', nazwisko: 'Kowalski', url: '
59 ongodb. Narzędzia i biblioteki 59/99 easymongo - count() Metoda count(): app.get('/policz', function (req, res) { pracownicy.count({imie: 'Wojciech'}).then(function(result) { // Zwraca liczbę dokumentów albo 0 jeśli błąd console.log(result); res.send('zwrócono liczbę dokumentów'); }); }) Wynik: 2
60 ongodb. Narzędzia i biblioteki 60/99 easymongo - remove() Metoda remove(): app.get('/usun', function (req, res) { pracownicy.remove({imie: 'Wojciech'}).then(function(result) { // Zwraca wynik operacji (wartość logiczna). Jeśli błąd to zwraca false. console.log(result); res.send('usunięto dokumenty'); }); }) Wynik: true
61 MongoDB. Narzędzia i biblioteki 61/99 mongoose Tworzenie walidacji dla MongoDB, rzutowania i szablonou logiki biznesowej jest... dużym obciążeniem. Dletego używamy gotywych bibliotek, np. mongoose. Mongoose - biblioteka dla Node.js udostępniająca mapowanie obiektowe (podobne do ORM) z interfejsem znanym z Node.js. W mongoose jest Object Data Mapping (ODM) - zmiana danych z bazy do obiektów JavaScript do użycia w aplikacji. Mongoose dostarcza gotowe rozwiązanie do modelowania danych aplikacji. Zawiera wbudowane rzutowanie typów, walidację, budowanie zapytań, gotowe, praktyczne rozwiązania dla logiki biznesowej i wiele innych.
62 MongoDB. Narzędzia i biblioteki 62/99 mongoose - sposób działania I Trzeba zainstalować mongoose w projekcie: npm install mongoose Dołączamy mongoose do projektu i łączymy się z bazą danych test (zostanie utworzona jeśłi takiej nie było): var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); Sprawdzamy czy połączenie się udało: var db = mongoose.connection; db.on('error', console.error.bind(console, 'błąd połączenia...')); db.once('open', function() { // połączenie udane! }); W mongoose wszystko zaczyna się od schematu: var friendschema = mongoose.schema({ nazwa: String }); Mając schemat, na jego bazie tworzymy model var Friend = mongoose.model('friend', friendschema);
63 MongoDB. Narzędzia i biblioteki 63/99 mongoose - sposób działania II Na bazie modułu tworzymy dokumenty (zawierają pola i typy jak w schemacie): var franek = new Friend({ nazwa: 'Franek' }); console.log(franek.nazwa); // 'Franek' Przyjaciele mogą się witać - zobaczmy, jak dodać funkcjonalność do naszych dokumentów: // metody należy dodać do schematu ZANIM utworzy się z niego model friendschema.methods.sayhello = function () { var powitanie = this.nazwa? "Cześć, mam na imię " + this.nazwa : "Witaj, nie wiem jak się nazywam..."; console.log(powitanie); } Funkcja dodana do pola methods schematu i wykorzystana w modelu jest dostępna w każdym utworzonym dokumencie var jola = new Friend({ nazwa: 'Jolanta' }); jola.sayhello(); // "Cześć, mam na imię Jolanta"
64 MongoDB. Narzędzia i biblioteki 64/99 mongoose - sposób działania III Zapis dokumentów w bazie odbywa się dzięki metodzie save(): // pierwszy argument odpowiada za błędy jola.save(function (err, jola) { if (err) return console.error(err); jola.sayhello(); }); Odczyt dokumentów zapisanych w bazie, metoda find(): Friend.find(function (err, przyjaciele) { if (err) return console.error(err); for(var i=0; i<przyjaciele.length; i++) { console.log('%s', przyjaciele[i].nazwa); } }) Wyszukiwanie można prowadzić, np. po nazwie: find({ nazwa: /ˆJol/ } Friend.find({ nazwa: /^Jol/ }, function (err, przyjaciele) { if (err) return console.error(err); console.log("====================\n"); for(var i=0; i<przyjaciele.length; i++) { console.log('%s', przyjaciele[i].nazwa); } }); // lista przyjaciół nazywających sie Jol*
65 MongoDB. Narzędzia i biblioteki 65/99 mongoose - schematy Jak tego używać? server.js mongoose - var mongoose = require('mongoose'); var TodoSchema = new mongoose.schema({ name: String, completed: Boolean, note: String, updated_at: { type: Date, default: Date.now }, }); var ListaTodo = mongoose.model('todo', TodoSchema); Typy danych w mongoose: String, Boolean, Date, Array, Number, ObjectId, Mixed, Buffer.
66 MongoDB. Narzędzia i biblioteki 66/99 Obsługa transakcji w MongoDB W MongoDB: operacje zapisu są atomowe na poziomie dokumentu nawet jeśli zapis modyfikuje wiele zagnieżdżonych dokumentów wewnątrz jednego dokumentu, polecenie modyfikujące wiele dokumentów jest atomowe na każdym dokumencie z osobna, ale operacja w całości atomowa nie jest, zapisy poszczególnych dokumentów mogą się przeplatać z operacjami zapisu innego polecenia, operator $isolated pozwala izolować pojedyncze polecenie zapisu, które dotyczy wielu dokumentów operator $isolated powoduje, że operacja zapisu uzyskuje wyłączny dostęp do kolekcji, operator $isolated nie działa na klastrach ze współdzieleniem (dane podzielone na różne serwery),
67 MongoDB. Narzędzia i biblioteki 67/99 Semantyka zbliżona do transakcji Ponieważ jeden dokument może zawierać wiele zagnieżdżonych dokumentów, to atomowość operacji na pojedynczym dokumencie zwykle wystarcza w wielu praktycznych przypadkach. Dla przypadków, w których ciąg operacji zapisu musi być wykonany jak w jednej transakcji, można zaimplementować dwustopniowe zatwierdzenie (ang. two-phase commit). Dwustopniowe zatwierdzenie oferuje semantykę tylko zbliżoną do transakcji, zapewnia spójność danych ale jest możliwe, że aplikacja zwróci pośrednie dane (pomiędzy tymi dwoma fazami) albo wykona rollback.
68 MongoDB. Narzędzia i biblioteki 68/99 Kontrola współbieżności Współbieżność pozwala na działanie różnym aplikacjom w tym samym czasie bez występowania konfliktów czy niespójności danych. Dwa podejścia obsługi współbieżności w MongoDB: jedno podejście zapewniające spójność polega na tworzeniu indeksów unikalnych na polach, w których wartości nie mogą się powtarzać, zapobiega to tworzeniu się powielonych wartości przy wstawianiu czy aktualizacji dokumentów, inne podejście wymaga określenia oczekiwanej biażącej wartości pola w predykacie zapytania operacji zapisu, dwustopniowe zatwierdzanie wprowadza pewną wariację tego rozwiązania, w której predykat zawiera identyfikator aplikacji jak również oczekiwaną bieżącą wartość pola podczas przeprowadania operacji zapisu.
69 MongoDB. Narzędzia i biblioteki 69/99 Dwustopniowa operacja zapisu W MongoDB: wzorzec wykonywania aktualizacji danych na wielu dokumentach, coś jak transakcja na wielu dokumentach używamy dwustopniowej operacji zapisu (ang. two-phase commit) przy zapisie danych do wielu dokumentów dodatkowo można rozszerzyć ten proces do uzyskania funkcjonalności zbliżonej do polecenia rollback
70 MongoDB. Narzędzia i biblioteki 70/99 Dwustopniowa operacja zapisu Przy wykonywaniu transakcji składających się z operacji sekwencyjnych, pojawiają się pewne uwagi: atomowość: jeśli jakaś operacja zakończy się niepowodzeniem, wcześniejsze operacje w transakcji muszą zostać wycofane, trzeba zrobić rollback do wcześniejszego stanu, spójność: w przypadku poważnych problemów (sieć, sprzęt), które przeszkodziły transakcji, baza danych musi być w stanie odzyskać wcześniejszy stan spójności. Dwustopniowe zatwierdzanie pozwala na wsparcie dla aktualizacji danych w wielu dokumentach. Dwustopniowe zatwierdzanie zapewnia, że dane w bazie będą spójne i, w przypadku błędów, stan przed rozpoczęciem transakcji jest osiągalny. Podczas wykonywana tego dwustopniowego zatwierdzania dokumenty są w stanie zawieszenia, nie są dostępne.
71 MongoDB. Narzędzia i biblioteki 71/99 Dwustopniowa operacja zapisu Przygotowanie kont, na których będzie operacja przelewu db.accounts.insert( [ { _id: "A", balance: 1000, pendingtransactions: [] }, { _id: "B", balance: 1000, pendingtransactions: [] } ] ) db.accounts.find() { } { } "_id" : "A", "balance" : , "pendingtransactions" : [ ] "_id" : "B", "balance" : , "pendingtransactions" : [ ]
72 MongoDB. Narzędzia i biblioteki 72/99 Dwustopniowa operacja zapisu Inicjalizacja transakcji db.transactions.insert( { _id: 1, source: "A", destination: "B", value: 100, state: "initial", lastmodified: new Date() } ) db.transactions.findone() { } "_id" : NumberInt(1), "source" : "A", "destination" : "B", "value" : NumberInt(100), "state" : "initial", "lastmodified" : ISODate(" T08:15: ")
73 MongoDB. Narzędzia i biblioteki 73/99 Dwustopniowa operacja zapisu 1. Pobieramy transakcję w celu jej rozpoczęcia var t = db.transactions.findone( { state: "initial" } ) t { } "_id" : NumberInt(1), "source" : "A", "destination" : "B", "value" : NumberInt(100), "state" : "initial", "lastmodified" : ISODate(" T08:15: ")
74 MongoDB. Narzędzia i biblioteki 74/99 Dwustopniowa operacja zapisu 2. Zmiana stanu transakcji na w toku db.transactions.update( { _id: t._id, state: "initial" }, { $set: { state: "pending", lastmodified: new Date() } } ) db.transactions.findone() { } "_id" : NumberInt(1), "source" : "A", "destination" : "B", "value" : NumberInt(100), "state" : "pending", "lastmodified" : ISODate(" T08:19: ")
75 MongoDB. Narzędzia i biblioteki 75/99 Dwustopniowa operacja zapisu 3 - Apply the transaction to both accounts db.accounts.update( { _id: t.source, pendingtransactions: { $ne: t._id } }, { $inc: { balance: -t.value }, $push: { pendingtransactions: t._id } } ) db.accounts.update( { _id: t.destination, pendingtransactions: { $ne: t._id } }, { $inc: { balance: t.value }, $push: { pendingtransactions: t._id } } ) db.accounts.find().pretty() { } { } "_id" : "A", "balance" : 900.0, "pendingtransactions" : [ 1.0 ] "_id" : "B", "balance" : , "pendingtransactions" : [ 1.0 ]
76 MongoDB. Narzędzia i biblioteki 76/99 Dwustopniowa operacja zapisu 4 - Update transaction state to wykonana db.transactions.update( { _id: t._id, state: "pending" }, { $set: { state: "applied", lastmodified: new Date() } } ) db.transactions.findone() { } "_id" : NumberInt(1), "source" : "A", "destination" : "B", "value" : NumberInt(100), "state" : "applied", "lastmodified" : ISODate(" T08:23: ")
77 MongoDB. Narzędzia i biblioteki 77/99 Dwustopniowa operacja zapisu 5 - Update both accounts list of pending transactions db.accounts.update( { _id: t.source, pendingtransactions: t._id }, { $pull: { pendingtransactions: t._id } } ) db.accounts.update( { _id: t.destination, pendingtransactions: t._id }, { $pull: { pendingtransactions: t._id } } ) db.accounts.find().pretty() { } { } "_id" : "A", "balance" : 900.0, "pendingtransactions" : [ ] "_id" : "B", "balance" : , "pendingtransactions" : [ ]
78 MongoDB. Narzędzia i biblioteki 78/99 Dwustopniowa operacja zapisu - zakończenie transakcji 6. Zmiania statusu transakcji na zakończona db.transactions.update( { _id: t._id, state: "applied" }, { $set: { state: "done", lastmodified: new Date() } } ) db.transactions.findone() { } "_id" : NumberInt(1), "destination" : "B", "lastmodified" : ISODate(" T08:26: "), "source" : "A", "state" : "done", "value" : NumberInt(100)
79 MongoDB. Narzędzia i biblioteki 79/99 Zapytania z polami tablic > db.tabs.find() > db.tabs.insert({tab:[1,2,3,4,5,7]}) > db.tabs.insert({tab:[3,4,5]}) > db.tabs.insert({tab:[1,4,8,12]}) > db.tabs.insert({tab:[7,8,9,10]}) > db.tabs.find({},{_id:0}) { "tab" : [ 1, 2, 3, 4, 5, 7 ] } { "tab" : [ 3, 4, 5 ] } { "tab" : [ 1, 4, 8, 12 ] } { "tab" : [ 7, 8, 9, 10 ] } > db.tabs.find({"tab":{"$lt":4}}).count() // 3 > db.tabs.find({"tab":{"$lte":4}}).count() // 3 > db.tabs.find({"tab":{"$gt":4}}).count() // 4 > db.tabs.find({"tab":{"$gte":4}}).count() // 4 > db.tabs.find({"tab":{$not:{"$lte":4}}}).count() // 1 > db.tabs.find({"tab":{$not:{"$gt":4}}}).count() // 0
80 MongoDB. Narzędzia i biblioteki 80/99 Tablice w kolekcji restauracji // Liczba wszystkich restauracji, z polem punkty i bez niego > db.restaurants.count({}) // > db.restaurants.count({"oceny.punkty":{$exists:1}}) // > db.restaurants.count({"oceny.punkty":{$exists:0}}) // 737 // Liczba restauracji posiadających ocenę mniejszą/większą lub równą 10 > db.restaurants.count({ "oceny.punkty": {$lte: 10} }) // > db.restaurants.count({ "oceny.punkty": {$gte: 10} }) // // Liczba restauracji nie posiadających oceny większej/mniejszej niż 10 > db.restaurants.count({ "oceny.punkty": {$not: {$gt: 10} } }) // 5754 > db.restaurants.count({ "oceny.punkty": {$not: {$lt: 10} } }) // 6292
81 MongoDB. Narzędzia i biblioteki 81/99 Rerferencje w MongoDB I MongoDB: nie wspiera złączeń, dane są zdenormalizowane, przechowywane z powiązanymi danymi w jednym dokumencie (nie ma potrzeby złączeń), w pewnych przypadkach sensowne jest przechowywanie powiązanych informacji w innych dokumentach (w innych kolekcjach, innych bazach danych). Dwa rodzaje przechowywania powiązań: proste referencje, ręcznie tworzone (ang. manual references) zapisujemy wartość pola _id jednego dokumentu w innym dokumencie co tworzy nam referencję, dodatkowe zapytanie pozwala nam pobrać powiązany referencją dokument, są proste i wystarczają w większości przypadków,
82 MongoDB. Narzędzia i biblioteki 82/99 Rerferencje w MongoDB II DBRefs łączą dwa dokumenty z różnych kolekcji, a nawet różnych baz danych, używają wartości pola _id, nazwy kolekcji i opcjonalnie nazwy bazy danych, pozwala na prostsze łączenie dokumentów z jednej kolekcji z dokumentami z wielu różnych kolekcji, uzyskanie dostępu do dołączonego dokumentu wymaga dodatkowego zapytania pobierającego dołączony dokument, wiele bibliotek zawiera metody, które automatycznie tworzą zapytanie na baze DBRefs, dostarcza wspólny format i typ reprezentujący połączenia między dokumentami, dostarcza wspólną semantykę reprezentacji połączeń między dokumentami jeśli baza danych musi komunikować się z wieloma szabonami aplikacji czy narzędziami. DBRefs używamy tylko w razie konieczności. Kiedy tylko to możliwe używamy prostych referencji.
83 MongoDB. Narzędzia i biblioteki 83/99 Proste rerferencje Przykład dwóch kolekcji: miejsca i ludzie id = ObjectId(); db.miejsca.insert({ "_id": id, "nazwa": "Zielona Góra", "url": " }) db.ludzie.insert({ "imie": "Matylda", "nazwisko": "Barańska", "pochodzenie": id }) Zapytanie do kolekcji ludzie zwraca id miejsca ich pochodznia. W razie potrzeby można te dane uzyskać kolejnym zapytaniem.
84 MongoDB. Narzędzia i biblioteki 84/99 Proste rerferencje - dostęp do danych Pierwsze i drugie zapytanie z wynikami: db.ludzie.findone({imie:"matylda", nazwisko:"barańska"}) { "_id" : ObjectId("583c1ba1c35740bad326fb36"), "imie" : "Matylda", "nazwisko" : "Barańska", "pochodzenie" : ObjectId("583c1b9dc35740bad326fb35") } db.miejsca.findone({"_id":objectid("583c1b9dc35740bad326fb35")}) { "_id" : ObjectId("583c1b9dc35740bad326fb35"), "nazwa" : "Zielona Góra", "url" : " }
85 MongoDB. Narzędzia i biblioteki 85/99 Proste rerferencje - użycie Proste referencje: wykorzystujemy w prawie każdym przypadku, są używane zawsze, kiedy tylko wystarczają, łatwo się je tworzy, tworzone aplikacje łatwo sobie radzą z takimi referencjami. Ograniczenia Proste referencje nie przechowują nazwy kolekcji i bazy danych. Jeśli dokumenty z jednej kolekcji mają referencje na dokumenty więcej niż jednej kolekcji to można rozwazyć wykorzystanie DBRefs.
86 MongoDB. Narzędzia i biblioteki 86/99 DBRefs DBRefs: : to pewna konwencja reprezentacji dokumentów bardziej niż jakiś typ referencyjny, zawierają wartość pola _id dokumentu, nazwę kolekcji, nazwę bazy danych (w pewnych przypadkach), składają się z następujących pól: $ref - przechowuje nazwę kolekcji docelowego dokumentu, $id - przechowuje wartość pola _id docelowego dokumentu, $db - pole opcjonalne, przechowuje nazwę bazy danych z docelowym dokumentem, tylko niektóre sterowniki obsługują to pole. { "$ref" : <value>, "$id" : <value>, "$db" : <value> }
87 MongoDB. Narzędzia i biblioteki 87/99 DBRefs - przykład Dodajemy pole znajomi (tablica) do kolekcji ludzie, które zawiera referencje do dokumentów z kolekcji osoby z bazy test. { } "_id" : ObjectId("583c1ba1c35740bad326fb36"), "imie" : "Matylda", "nazwisko" : "Barańska", "pochodzenie" : ObjectId("583c1b9dc35740bad326fb35"), "znajomi" : [ DBRef("osoby", ObjectId("566893bd2ae04f8923cb23c3"), "test") ] Kolejność pól w DBRefs ma znaczenie, nie można jej zmieniać. Nie wszystkie sterowniki mają wsparcie dla DBRefs. W niektórych trzeba przechodzić po referencjach ręcznie. Sterownik do Node.js wspiera DBRefs. Używamy klasy DBRefs i metody dereference.
88 MongoDB. Narzędzia i biblioteki 88/99 Kilka instrukcji z DBRefs Dostęp do pól w DBRef: var zn = db.ludzie.findone( {"znajomi.$id":objectid("566893bd50873fdd7adc45a8")} ).znajomi[0] // DBRef("osoby", ObjectId("566893bd50873fdd7adc45a8")) zn // osoby bd50873fdd7adc45a8 lab06 print(zn.$ref + " " + zn.$id + " " + zn.$db) db2 = db.getsiblingdb(zn.$db); coll = db2.getcollection(zn.$ref); coll.findone({"_id":zn.$id.str}); db.getsiblingdb(zn.$db).getcollection(zn.$ref).findone({"_id":zn.$id.str}); db.getsiblingdb(nazwabd) - zwraca inną bazę danych bez zmiany bieżącej w mongo shell db2.getcollection(nazwakol) - zwraca obiekt kolekcji o podanej nazwie
89 MongoDB. Narzędzia i biblioteki 89/99 Praca z bazą danych Funkcja zwracająca ID miejsca po jego nazwie: db.miejsca.find() { "_id" : ObjectId(" cb048847f3cf8f11e"), "nazwa" : "Zakopane", "url" : " } { "_id" : ObjectId("583c19c1deb9a913adfd231a"), "nazwa" : "Małe Ciche", "url" : " }... // pobieranie id miejsca po nazwie function pobierzidmiejsca(nazwa) { id = db.miejsca.findone({"nazwa":regexp(nazwa)},{_id:1}) if(id!==null) return id._id; else return null; } pobierzidmiejsca('małe'); ObjectId("583c19c1deb9a913adfd231a")
90 MongoDB. Narzędzia i biblioteki 90/99 Praca z bazą danych Dodawanie osoby do kolekcji, nie przekazujemy wartości wszystkich pól: function dodajosobe(imie, nazwisko, pochodznie) { db.ludzie.insert({ "imie": imie, "nazwisko": nazwisko, "pochodzenie": pochodznie }); } // dodawanie osób dodajosobe("tomasz", "Kowalkowski", pobierzidmiejsca('częstochowa')); dodajosobe('klara', 'Słoczyńska', ObjectId("583c18d2deb9a913adfd2312"));... { "_id" : ObjectId("583c56a7c35740bad326fb38"), "imie" : "Tomasz","nazwisko" : "Kowalkowski", "pochodzenie" : ObjectId("583c186bdeb9a913adfd230c") } { "_id" : ObjectId("583c57b2c35740bad326fb39"), "imie" : "Klara", "nazwisko" : "Słoczyńska", "pochodzenie" : ObjectId("583c18d2deb9a913adfd2312") }
91 MongoDB. Narzędzia i biblioteki 91/99 Praca z bazą danych Pobieranie ID osoby po jej imieniu i nazwisku: // pobieranie ID osoby function pobierzidosoby(imie, nazwisko) { id = db.ludzie.findone({"imie":imie,"nazwisko":nazwisko},{_id:1}) if(id!==null) return id._id; else return null; } pobierzidosoby('tomasz', 'Kowalkowski') ObjectId("583c56a7c35740bad326fb38") pobierzidosoby('tomasz', 'Kowalkowskii') null
92 ongodb. Narzędzia i biblioteki 92/99 Praca z bazą danych Dodawanie miejsca, określamy nazwę i adres URL strony: // dodawanie miejsca function dodajmiejsce(nazwa, url) { id = ObjectId(); db.miejsca.insert({ "_id": id, "nazwa": nazwa, "url": url }); return id; } dodajmiejsce("zamość", " db.miejsca.find()... { "_id" : ObjectId("583c5866c35740bad326fb3a"), "nazwa" : "Zamość", "url" : " }
93 MongoDB. Narzędzia i biblioteki 93/99 Praca z bazą danych Lista osób pochodzących z konkretnej miejscowości: function listaosob(pochodzenie) { var idmiejsca = db.miejsca.findone({nazwa:pochodzenie})._id; print(idmiejsca); var cur = db.ludzie.find({"pochodzenie":idmiejsca},{_id:0}); print('lista OSÓB Z '+ pochodzenie.touppercase()); while (cur.hasnext()) { var os = cur.next(); print(os.imie+" "+os.nazwisko); } } listaosob('częstochowa') LISTA OSÓB Z CZĘSTOCHOWA Tomasz Kowalkowski Bartosz Rolnik Kamila Bartosik...
94 MongoDB. Narzędzia i biblioteki 94/99 Składowanie kodu JavaScript w bazie danych Kod JavaScript przechowywany na serwerze JavaScript jest bardzo ważnym językiem dla MongoDB. Mongo shell korzysta z języka JavaScript. Server posiada również wbudowany interpreter JavaScript używany m.in. w: Map/Reduce funkcji db.eval() klauzuli $where Istnieje możliwość przechowywania funkcji zapisanych w JavaScript na serwerze i wywoływanie ich. Funkcje zapisywane są w specjalnej kolekcji system.js. Zawartość kolekcji system.js można przeglądać, modyfikować, usuwać jak każdą inną kolekcję.
95 MongoDB. Narzędzia i biblioteki 95/99 Składowanie kodu JavaScript w bazie danych - uwagi Kod JavaScript przechowywany na serwerze Nie powinno się przechowywać logiki aplikacji w bazie danych. Przechowywanie kodu JavaScript na serwerze ma ograniczenia wydajnościowe. Kod aplikacji jest zwykle najbardziej wydajny, jeśli rozwija się razem z aplikacją, ma ten sam system kontroli wersji.
96 MongoDB. Narzędzia i biblioteki 96/99 Składowanie kodu JavaScript w bazie danych Poniższy kod przykładowej funkcji function sumaliczb(a, b) { return a+b; } sumaliczb(12, 9) można zapisać w bazie, w kolekcji system.js db.system.js.save({ _id:"dodajliczby", value:function(a, b){ return a+b; } }); i uruchomić, np. poniższym poleceniem db.eval("dodajliczby(2, 3);"); // db.eval(dodajliczby, 12, 7); // wczytywanie funkci z serwera i uruchamianie ich na w mongo shell db.loadserverscripts(); dodajliczby(7, 5);
97 MongoDB. Narzędzia i biblioteki 97/99 Funkcja eval() Funkcja eval(funkcja, [arg1, arg2,...]): porzucona w wersji 3.0 działa, ale jej użycie jest niezalecane, pozwala na wykonanie się kodu JavaScript na serwerze, domyślnie blokuje całą bazę danych na czas działania, nie można używać na kolekcjach współdzielonych (ang. sharding), powinno się jej unikać jeśli w klastrze mamy wspódzielone dane, jednak można używać na niewspółdzielonych kolekcjach i bazach danych, nawet jeśli klaster jest ze współdzieleniem. db.eval( function (a, b) { print("hello on MongoDB server"); return a+b; }, 12, 3); 15
98 MongoDB. Narzędzia i biblioteki 98/99 Zawartość kolekcji system.js db.system.js.save({ _id: "hello", value : function() { print("hello World"); return "Witaj Świecie"; } }); db.system.js.save({ _id:"dodajliczby", value:function(a, b){ return a+b; } }); db.eval("hello()"); // wykonuje się na serwerze db.loadserverscripts(); hello(); // wczytana z serwera, wykonuje się w mongo shell Zawartość kolekcji system.js: pole _id zawiera nazwę funkcji, jest unikalne w obszarze bazy danych, pole value zawiera definicję funkcji, nie jako tekst ale jako funkcję.
99 MongoDB. Narzędzia i biblioteki 99/99 Źródła administration-interfaces/ stored-javascript-in-mongodb-and-pymongo.html getting-started-with-stored-procedures-in-mongodb.html
MongoDB - pomoc do laboratorium
ongodb - pomoc do laboratorium 1/19 MongoDB - pomoc do laboratorium Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej
MongoDB. Narzędzia, transakcje, referencje
ongodb. Narzędzia, transakcje, referencje 1/73 MongoDB. Narzędzia, transakcje, referencje Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut
MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska
MongoDB wprowadzenie dr inż. Paweł Boiński, Politechnika Poznańska Plan Historia Podstawowe pojęcia: Dokument Kolekcja Generowanie identyfikatora Model danych Dokumenty zagnieżdżone Dokumenty z referencjami
PHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym
1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle
dziennik Instrukcja obsługi
Ham Radio Deluxe dziennik Instrukcja obsługi Wg. Simon Brown, HB9DRV Tłumaczenie SP4JEU grudzień 22, 2008 Zawartość 3 Wprowadzenie 5 Po co... 5 Główne cechy... 5 baza danych 7 ODBC... 7 Który produkt
Instalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o
Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa
Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Wykład 5: PHP: praca z bazą danych MySQL
Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych
Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.
Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych
Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...
Część I Rozpoczęcie pracy z usługami Reporting Services
Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...
Podstawy programowania III WYKŁAD 2
Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące
Co to jest NODE.JS? Nowoczesne środowisko programistyczne
Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych
WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.
WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Wprowadzenie do Doctrine ORM
Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,
Aplikacje webowe z wykorzystaniem Node.js oraz Express
Aplikacje webowe z wykorzystaniem Node.js oraz Express Adresaci szkolenia: Kurs przeznaczony jest dla programistów pragnących tworzyć skalowalne aplikacje z wykorzystaniem Node.js. Parametry szkolenia:
Uruchamianie bazy PostgreSQL
Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL
T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15
T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest
Express.js i własne API - pomoc do lab02
xpress.js i własne API - pomoc do lab02 1/27 Express.js i własne API - pomoc do lab02 Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki
15. Funkcje i procedury składowane PL/SQL
15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp
MEAN Stack - Mongoose, obsługa poczty elektornicznej
EAN Stack - Mongoose, obsługa poczty elektornicznej 1/38 MEAN Stack - Mongoose, obsługa poczty elektornicznej Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska
Baza numerów Wersja 1.1
Baza numerów Wersja 1.1 SPIS TREŚCI 1. Wprowadzenie 1.1 Adresy URL do połączenia z aplikacją 1.2 Informacje zwrotne wysyłane z API w odpowiedzi na odebrane odwołania I. Zarządzanie grupami Bazy Numerów
Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych
Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł
Bazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca
Oracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Programowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
VinCent Administrator
VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów
EXSO-CORE - specyfikacja
EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.
I. Informacje ogólne. Jednym z takich systemów jest Mambo.
MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację
Hurtownie danych wykład 5
Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 1 Współbieżność i integracja Niezgodność impedancji 2 bazy danych Współbieżność i integracja Niezgodność impedancji Bazy relacyjne
CouchDB. Michał Nowikowski
CouchDB Michał Nowikowski Agenda Wprowadzenie do CouchDB Mój przypadek Wyniki i wnioski Dokumenty CouchDB Format JSON Pary nazwa wartość Możliwe tablice i struktury Załączniki Brak limitów na liczbę i
Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1
Viatoll Calc Instrukcja użytkownika Strona 1 Spis treści 1 Wstęp...3 2 Opis panelu głównego...3 2.1 Menu aplikacji...4 2.2 Tabela z trasami...5 2.3 Strona kalkulatora viatoll...6 2.4 Pasek statusu...7
SQL 4 Structured Query Lenguage
Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy
Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5
Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych
Backend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z
oprogramowania F-Secure
1 Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure Wznowienie oprogramowania F-Secure zaczyna działać automatycznie. Firma F-Secure nie udostępnia paczki instalacyjnej EXE lub MSI do
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014
Leonard G. Lobel Eric D. Boyd Microsoft TM Azure SQL Database Krok po kroku Przekład: Marek Włodarz APN Promise, Warszawa 2014 Spis treści Wprowadzenie........................................................
KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED
KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla właścicieli sklepów internetowych opartych
Baza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Typy tabel serwera MySQL
Typy tabel serwera MySQL Kopie zapasowe baz danych Zabezpieczanie serwera MySQL Zakładanie konta użytkownika z określonymi uprawnieniami Zarządzanie kontem i bazą danych Kilka kolejnych informacji na temat
Bash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi
OpenOfficePL Zestaw szablonów magazynowych Instrukcja obsługi Spis treści : 1. Informacje ogólne 2. Instalacja zestawu a) konfiguracja połączenia z bazą danych b) import danych z poprzedniej wersji faktur
PODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
Instrukcja laboratoryjna
Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z
MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT
MS Windows Vista Autor: Jacek Parzonka, InsERT Spis treści SPIS TREŚCI... 1 WSTĘP... 2 PROBLEMY... 2 UŻYWANIE AUTENTYKACJI WINDOWS DLA MS SQL SERVERA 2005 EXPRESS... 2 Run as administrator... 3 Modyfikacja
Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:
Rozdział I Szczegółowy opis przedmiotu umowy Załącznik nr 1 do Umowy Architektura środowisk SharePoint UMWD 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów: a) Środowisko
Microsoft.NET: LINQ to SQL, ASP.NET AJAX
Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub
1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne
Dokumentacja programu e Zoz Opis biblioteki PhantomAPI.dll Wersja 1.22.1.5 Zielona Góra 2010-08-26 1. Opis ogólny Biblioteka programistyczna PhantomAPI.dll służy do integracji oprogramowania zewnętrznego
Dokumentacja techniczna API systemu SimPay.pl
Wprowadzenie Dokumentacja techniczna API systemu SimPay.pl Wersja 1.0 z dnia 24.03.2015 r. API serwisu SimPay.pl opiera się o danych wysyłanych i zwracanych w formie JSON. W przypadku napotkania jakiegokolwiek
Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Microsoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
Projektowanie systemów baz danych
Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do
Problemy techniczne SQL Server
Problemy techniczne SQL Server Jak utworzyć i odtworzyć kopię zapasową bazy danych za pomocą narzędzi serwera SQL? Tworzenie i odtwarzanie kopii zapasowych baz danych programów Kadry Optivum, Płace Optivum,
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy
Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje
Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje Git w wersji przenośnej umożliwia korzystanie z repozytoriów na każdym systemie z rodziny Windows, który nie posiada zainstalowanego
Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9
Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do
REFERAT O PRACY DYPLOMOWEJ
REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,
SPIS TREŚCI: KARTY GRAFICZNE... 15
SPIS TREŚCI: Od Autora... 13 KARTY GRAFICZNE... 15 PRZEGLĄDANIE GRAFIKI... 17 Nowe formaty danych... 17 Program CyberView... 18 Konfiguracja za pomocą parametrów ikony... 21 Ustawianie parametrów ekranu
Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.
Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username
Automatyczna instalacja oprogramowania.
1 (Pobrane z slow7.pl) Samo zainstalowanie systemu nie nastręcza wielu problemów i z reguły cały proces przebiega szybko i sprawnie. Dłużej czasu zajmuje Nam odszukanie aktualnych sterowników do posiadanych
Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010
Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa
Specyfikacja techniczna. mprofi Interfejs API
Warszawa 09.04.2015. Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 1 Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 WERSJA DATA STATUTS AUTOR 1.0.0 10.03.2015 UTWORZENIE DOKUMENTU
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.
Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.
DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech
DBPLUS Data Replicator Subtitle dla Microsoft SQL Server dbplus.tech Instalacja Program instalacyjny pozwala na zainstalowanie jednego lub obu komponentów: serwera i klienta. Przy zaznaczeniu opcji Serwer
Administracja bazami danych
Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07
PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się
Autor: Joanna Karwowska
Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.
Dni: 3. Opis: Adresaci szkolenia
Kod szkolenia: Tytuł szkolenia: H4C04S HP OneView Administration Dni: 3 Opis: Adresaci szkolenia Administratorzy systemów, inżynierowie, konsultanci, którzy projektują i wdrażają rozwiązania HP Cloud za
Podręcznik użytkownika
Podręcznik użytkownika Moduł kliencki Kodak Asset Management Software Stan i ustawienia zasobów... 1 Menu Stan zasobów... 2 Menu Ustawienia zasobów... 3 Obsługa alertów... 7 Komunikaty zarządzania zasobami...
Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu
Dane wejściowe Oracle Designer Generowanie bazy danych Diagramy związków encji, a w szczególności: definicje encji wraz z atrybutami definicje związków między encjami definicje dziedzin atrybutów encji
1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7
1. Aplikacja do LOGO! 8 i LOGO! 7 1.1. Przegląd funkcji Darmowa aplikacja umożliwia podgląd wartości parametrów procesowych modułu podstawowego LOGO! 8 i LOGO! 7 za pomocą smartfona lub tabletu przez sieć
Problemy techniczne SQL Server
Problemy techniczne SQL Server Jak utworzyć i odtworzyć kopię zapasową za pomocą narzędzi serwera SQL? Tworzenie i odtwarzanie kopii zapasowych baz danych programów Kadry Optivum, Płace Optivum, MOL Optivum,
Tomasz Grześ. Systemy zarządzania treścią
Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,
NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki
29 października 2014 Igor Wojnicki (AGH, KIS) CouchDB 29 października 2014 1 / 53 NoSQL Not Only SQL, CouchDB Apache CouchDB has started. Time to relax. Igor Wojnicki Katedra Informatyki Stosowanej, Akademia
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD
Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.
Projekt współfinansowany przez Unię Europejską z Europejskiego Funduszu Rozwoju Regionalnego w ramach Regionalnego Programu Operacyjnego Województwa Śląskiego na lata 2007-2013 Czerwionka-Leszczyny 6.11.2012
Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x
Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
PRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE
Budowa i oprogramowanie komputerowych systemów sterowania Laboratorium 4 Metody wymiany danych w systemach automatyki DDE 1 Wprowadzenie do DDE DDE (ang. Dynamic Data Exchange) - protokół wprowadzony w
koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,
Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi
Windows Server Active Directory
Windows Server 2012 - Active Directory Active Directory (AD) To usługa katalogowa a inaczej mówiąc hierarchiczna baza danych, która przynajmniej częściowo musi być ściśle związana z obiektową bazą danych.
Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików
Sprawozdanie (notatki) Sieci komputerowe i bazy danych Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików Piotr Morawiec 22.03.2017 FTP (ang. File transfer Protocol) - protokół wymiany
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu
Instrukcja obsługi programu Dystrybutor GT
Instrukcja obsługi programu Dystrybutor GT 1. Instalacja i pierwsze uruchomienie Instalacja programu jest prosta. Należy uruchomić plik setup.exe i w zasadzie wszystkie pytania można pominąć przyjmując