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 z mongo .
  • 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
        
    • 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 plik tgz . Wewnątrz folderu byłby podfolder o nazwie bin który zawierałby kilka plików binarnych wraz z mongod i mongo .

      • 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 z mongod i mongo . 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 nazwie db 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
        

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ślnym test bazy danych oraz w kolekcji o nazwie world .
  • W drugim wierszu pobieramy właśnie wstawione dane. Pobrane dane są przechowywane w zmiennej javascript o nazwie cur . Następnie za pomocą funkcji next() odzyskaliśmy pierwszy i jedyny dokument i zachowaliśmy go w innej zmiennej js o nazwie x . 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()


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow