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
mongod
a 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.tgz
Zamiast
xyz
pojawił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 nazwiebin
który zawierałby kilka plików binarnych wraz zmongod
imongo
.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 # exit
Aby uruchomić serwer, należy wydać następujące polecenie z bieżącej lokalizacji:
$ ./mongod
Domyś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.
$ ./mongo
Domyślnie łączy się z
test
bazą 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
bin
zawiera kilka plików binarnych wraz zmongod
imongo
. 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
data
mający podfolder o nazwiedb
któ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:
> mongod
Domyślnie uruchomiłby serwer na porcie 27017.
Otwórz inny wiersz polecenia i wpisz następujące polecenie, aby uruchomić klienta:
> mongo
Domyślnie łączy się z
test
bazą 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.list
na 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.list
Zaktualizuj listę pakietów.
$ sudo apt-get update
Zainstaluj 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.asc
Zaktualizuj listę pakietów.
$ sudo yum update
Zainstaluj 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ślnymtest
bazy 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()