MongoDB Samouczek
Rozpoczęcie pracy z MongoDB
Szukaj…
Uwagi
- Dane na świecie zaczęły ogromnie rosnąć po pojawieniu się aplikacji mobilnej na rynku. Ta ogromna ilość danych stała się prawie niemożliwa do obsługi przy użyciu tradycyjnej relacyjnej bazy danych - SQL. Wprowadzono bazy danych NoSQL do obsługi tych danych, w przypadku których uzyskano znacznie większą elastyczność, jak zmienna liczba kolumn dla każdego z danych.
- MongoDB jest jedną z wiodących baz danych NoSQL. Każda kolekcja zawiera wiele dokumentów JSON. Każdy model danych, który można wyrazić w dokumencie JSON, można łatwo zapisać w MongoDB.
- MongoDB to baza danych serwer-klient. Serwer zwykle działa z plikiem binarnym
mongoda klient zmongo. - Nie ma operacji łączenia w MongoDB przed wersją 3.2, z różnych przyczyn filozoficznych i pragmatycznych . Ale powłoka Mongo obsługuje javascript, więc jeśli $ $ lookup nie jest dostępne, można symulować operacje łączenia na dokumentach w javascript przed wstawieniem.
- Aby uruchomić instancję w środowisku produkcyjnym, zdecydowanie zaleca się przestrzeganie listy kontrolnej operacji .
Wersje
| Wersja | Data wydania |
|---|---|
| 3.4 | 29.11.2016 |
| 3.2 | 08.12.2015 |
| 3.0 | 2015-03-03 |
| 2.6 | 08.04.2014 |
| 2.4 | 19.03.2013 |
| 2.2 | 29.08.2012 |
| 2.0 | 2011-09-12 |
| 1.8 | 16.03.2011 |
| 1.6 | 31.08.2010 |
| 1.4 | 25.03.2010 |
| 1.2 | 2009-12-10 |
Instalacja
Aby zainstalować MongoDB, wykonaj następujące czynności:
W systemie Mac OS:
- Istnieją dwie opcje dla Mac OS: instalacja ręczna lub homebrew .
- Instalowanie za pomocą Homebrew :
- Wpisz następujące polecenie w terminalu:
$ brew install mongodb
- Wpisz następujące polecenie w terminalu:
- Instalowanie ręczne:
Pobierz najnowszą wersję tutaj . Upewnij się, że pobierasz odpowiedni plik, szczególnie sprawdź, czy typ systemu operacyjnego to 32-bit czy 64-bit. Pobrany plik ma format
tgz.Przejdź do katalogu, w którym ten plik jest pobrany. Następnie wpisz następujące polecenie:
$ tar xvf mongodb-osx-xyz.tgzZamiast
xyzpojawiłyby się informacje o wersji i typie systemu. Wyodrębniony folder będzie miał taką samą nazwę jak pliktgz. Wewnątrz folderu byłby podfolder o nazwiebinktóry zawierałby kilka plików binarnych wraz zmongodimongo.Domyślnie serwer przechowuje dane w folderze
/data/db. Musimy więc utworzyć ten katalog, a następnie uruchomić serwer za pomocą następujących poleceń:$ sudo bash # mkdir -p /data/db # chmod 777 /data # chmod 777 /data/db # exitAby uruchomić serwer, należy wydać następujące polecenie z bieżącej lokalizacji:
$ ./mongodDomyślnie uruchomiłby serwer na porcie 27017.
Aby uruchomić klienta, należy otworzyć nowy terminal o takim samym katalogu jak poprzednio. Następnie następujące polecenie uruchomi klienta i połączy się z serwerem.
$ ./mongoDomyślnie łączy się z
testbazą danych. Jeśli widzisz linię podobnąconnecting to: test. Następnie pomyślnie zainstalowałeś MongoDB. Gratulacje! Teraz możesz przetestować Hello World, aby być bardziej pewnym siebie.
Dla Windowsa:
Pobierz najnowszą wersję tutaj . Upewnij się, że pobierasz odpowiedni plik, szczególnie sprawdź, czy typ systemu operacyjnego to 32-bit czy 64-bit.
Pobrany plik binarny ma rozszerzenie
exe. Uruchom. Poprosi kreatora instalacji.Kliknij Dalej .
Zaakceptuj umowę licencyjną i kliknij przycisk Dalej .
Wybierz opcję Zakończ instalację.
Kliknij Zainstaluj . Może pojawić się okno z pytaniem o zgodę administratora. Kliknij Tak .
Po instalacji kliknij przycisk Zakończ .
Teraz mongodb jest zainstalowany na ścieżce
C:/Program Files/MongoDB/Server/3.2/bin. Zamiast wersji 3.2 może istnieć inna wersja dla twojego przypadku. Nazwa ścieżki zostanie odpowiednio zmieniona.katalog
binzawiera kilka plików binarnych wraz zmongodimongo. Aby uruchomić go z innego folderu, możesz dodać ścieżkę do ścieżki systemowej. Aby to zrobić:- Kliknij Mój komputer prawym przyciskiem myszy i wybierz Właściwości .
- Kliknij opcję Zaawansowane ustawienia systemu w lewym okienku.
- Kliknij Zmienne środowiskowe ... w zakładce Zaawansowane .
- Wybierz Ścieżkę z sekcji Zmienne systemowe i kliknij Edytuj ...
- Przed Windows 10 dodaj średnik i wklej ścieżkę podaną powyżej. W systemie Windows 10 znajduje się przycisk Nowy , aby dodać nową ścieżkę.
- Kliknij OK s, aby zapisać zmiany.
Teraz utwórz folder o nazwie
datamający podfolder o nazwiedbktórym chcesz uruchomić serwer.Uruchom wiersz polecenia z ich. Albo zmieniając ścieżkę w cmd, albo klikając tutaj Otwórz okno poleceń, które byłyby widoczne po kliknięciu prawym przyciskiem myszy pustej przestrzeni GUI folderu, naciskając jednocześnie klawisze Shift i Ctrl.
Napisz polecenie, aby uruchomić serwer:
> mongodDomyślnie uruchomiłby serwer na porcie 27017.
Otwórz inny wiersz polecenia i wpisz następujące polecenie, aby uruchomić klienta:
> mongoDomyślnie łączy się z
testbazą danych. Jeśli widzisz linię podobnąconnecting to: test. Następnie pomyślnie zainstalowałeś MongoDB. Gratulacje! Teraz możesz przetestować Hello World, aby być bardziej pewnym siebie.
W systemie Linux: prawie taki sam jak w systemie Mac OS, z wyjątkiem tego, że potrzebne jest równoważne polecenie.
- W przypadku dystrybucji opartych na Debianie (przy użyciu
apt-get):Zaimportuj klucz repozytorium MongoDB.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: Total number processed: 1\ gpg: imported: 1 (RSA: 1)Dodaj repozytorium do listy pakietów w systemie Ubuntu 16.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.listna Ubuntu 14.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.listZaktualizuj listę pakietów.
$ sudo apt-get updateZainstaluj MongoDB.
$ sudo apt-get install mongodb-org
- W przypadku dystrybucji opartych na systemie Red Hat (używając
yum):użyj preferowanego edytora tekstu.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
Wklej następujący tekst.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.ascZaktualizuj listę pakietów.
$ sudo yum updateZainstaluj MongoDB
$ sudo yum install mongodb-org
- W przypadku dystrybucji opartych na Debianie (przy użyciu
Witaj świecie
Po zakończeniu instalacji należy wprowadzić następujące wiersze w powłoce mangowej (terminal klienta).
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
Witaj świecie!
Wyjaśnienie:
- W pierwszym wierszu umieściliśmy sparowany dokument
{ key : value }w domyślnymtestbazy danych oraz w kolekcji o nazwieworld. - W drugim wierszu pobieramy właśnie wstawione dane. Pobrane dane są przechowywane w zmiennej javascript o nazwie
cur. Następnie za pomocą funkcjinext()odzyskaliśmy pierwszy i jedyny dokument i zachowaliśmy go w innej zmiennej js o nazwiex. Następnie wydrukowano wartość dokumentu zawierającego klucz.
Warunki uzupełniające
| Warunki SQL | Warunki MongoDB |
|---|---|
| Baza danych | Baza danych |
| Stół | Kolekcja |
| Podmiot / wiersz | Dokument |
| Kolumna | Klucz / pole |
| Dołącz do stołu | Dokumenty osadzone |
| Klucz podstawowy | Klucz podstawowy (domyślny klucz _id dostarczony przez sam mongodb) |
Wykonanie pliku JavaScript w MongoDB
./mongo localhost:27017/mydb myjsfile.js
Objaśnienie: Ta operacja wykonuje skrypt myjsfile.js w powłoce mongo która łączy się z bazą danych mydb w instancji mongod dostępnej przez interfejs localhost na porcie 27017 . localhost:27017 nie jest obowiązkowy, ponieważ jest to domyślny port, mongodb używa mongodb .
Możesz także uruchomić plik .js z poziomu konsoli mongo .
>load("myjsfile.js")
Czytanie wyników wyszukiwania w powłoce
Do naszego testu kolekcji dodajemy trzy rekordy:
> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
Jeśli zobaczymy je przez find, będą wyglądać bardzo brzydko.
> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
Aby obejść ten problem i uczynić je czytelnymi, użyj funkcji pretty ().
> db.test.find().pretty()
{
"_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
"key" : "value1",
"key2" : "Val2",
"key3" : "val3"
}
{
"_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
"key" : "value2",
"key2" : "Val21",
"key3" : "val31"
}
{
"_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
"key" : "value3",
"key2" : "Val22",
"key3" : "val33"
}
>
Podstawowe polecenia dotyczące powłoki mongo
Pokaż wszystkie dostępne bazy danych:
show dbs;
Wybierz konkretną bazę danych, do której chcesz uzyskać dostęp, np. mydb . Spowoduje to utworzenie mydb jeśli jeszcze nie istnieje:
use mydb;
Pokaż wszystkie kolekcje w bazie danych (najpierw wybierz jedną, patrz wyżej):
show collections;
Pokaż wszystkie funkcje, których można używać z bazą danych:
db.mydb.help();
Aby sprawdzić aktualnie wybraną bazę danych, użyj komendy db
> db
mydb
db.dropDatabase() służy do usunięcia istniejącej bazy danych.
db.dropDatabase()