MongoDB to baza danych NoSQL. Pod NoSQL parasol umieściliśmy wszystkie te bazy danych, które nie używają języka SQL do przeszukiwania danych.
Kluczowe cechy MongoDB
MongoDB to bardzo przyjazna dla JavaScript baza danych. Udostępnia API JavaScript, którego możemy użyć do tworzenia baz danych i kolekcji obiektów (zwanych dokumentami ).
Jest bez schematu , co oznacza, że nie musisz wstępnie definiować struktury danych przed ich zapisaniem.
W MongoDB możesz przechowywać dowolny obiekt, nie martwiąc się o poszczególne pola, które składają się na ten obiekt i jak je przechowywać. Każesz MongoDB przechować ten obiekt.
Dane są przechowywane w formacie podobnym do JSON, ale ulepszonym, aby umożliwić przechowywanie więcej niż tylko podstawowych typów danych.
Instalacja
Przejdźmy dalej i zainstalujmy MongoDB. Możesz skorzystać z jednego z wielu dostawców chmury, którzy oferują dostęp do instancji MongoDB, ale ze względu na naukę zainstalujemy ją sami.
Używam komputera Mac, więc instrukcje instalacji w tym samouczku odnoszą się do tego systemu operacyjnego.
Otwórz terminal i uruchom:
brew tap mongodb/brew
brew install mongodb-community
To wszystko.
Instrukcje nie były zbyt długie ani skomplikowane, zakładając, że wiesz, jak korzystać z terminala i jak zainstalować Homebrew.
Instalacja mówi nam to:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Możesz uruchomić MongoDB raz i uruchomić go na zawsze jako usługę działającą w tle (to, co wolę), albo uruchomić go tylko wtedy, gdy tego potrzebujesz, uruchamiając to drugie polecenie.
Domyślna konfiguracja MongoDB jest następująca:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Dzienniki są przechowywane w /usr/local/var/log/mongodb/mongo.log
a baza danych jest przechowywana w /usr/local/var/mongodb
.
Domyślnie nie ma kontroli dostępu, każdy może czytać i zapisywać w bazie danych.
Muszla Mongo
Najlepszym sposobem na eksperymentowanie z MongoDB i rozpoczęcie interakcji z nim jest uruchomienie mongo
program, który uruchamia powłokę MongoDB.
Możesz teraz wpisać dowolne polecenie, które Mongo rozumie.
Utwórz bazę danych
Kiedy zaczynasz, Mongo tworzy bazę danych o nazwie test
. Uruchom db
w powłoce, aby podać nazwę aktywnej bazy danych
Aby zmienić bazę danych, po prostu napisz use newname
i newname
baza danych zostanie natychmiast utworzona, a powłoka przełączy się na jej używanie.
Użyj show databases
aby wyświetlić dostępne bazy danych:
Jak widać, something
baza danych nie jest wymieniona, tylko dlatego, że nie ma jeszcze w niej kolekcji. Stwórzmy jeden.
Kolekcje
W MongoDB kolekcja jest odpowiednikiem tabeli bazy danych SQL.
Tworzysz kolekcję w bieżącej bazie danych za pomocą db.createCollection()
Komenda. Pierwszym argumentem jest nazwa bazy danych, a jako drugi parametr można przekazać obiekt opcji.
Gdy to zrobisz, show databases
wyświetli listę nowej bazy danych i show collections
wyświetli listę kolekcji.
Możesz również utworzyć nową kolekcję, używając jej jako właściwości db
obiekt i wywołanie insert()
aby dodać obiekt do kolekcji:
db.dogs.insert({ name: 'Roger' })
Lista obiektów w kolekcji
Aby wyświetlić obiekty dodane do kolekcji, użyj find()
metoda:
Jak widać, istnieje dodatkowy _id
właściwość dla rekordu, który dodaliśmy. To jest automatycznie generowane dla nas przez MongoDB.
Teraz dodaj więcej psów:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Wywołanie db.dogs.find()
da nam wszystkie wpisy, podczas gdy możemy przekazać parametr do filtrowania i pobierania określonego wpisu, na przykład za pomocą db.dogs.find({name: 'Roger'})
:
find()
metoda zwraca kursor, na którym musisz wykonać iterację.
Istnieje inna metoda, która jest przydatna, gdy wiesz, że otrzymasz tylko jeden rekord, a mianowicie findOne()
i jest używany w ten sam sposób. Jeśli do zapytania pasuje wiele rekordów, zwróci tylko pierwszy.
Aktualizowanie rekordów
Aby zaktualizować rekord, możesz użyć update()
metoda na kolekcji:
Usuwanie rekordów
Możesz usunąć rekord, wywołując remove()
w kolekcji, przekazując obiekt, aby pomóc go zidentyfikować:
Aby usunąć wszystkie wpisy z kolekcji, przekaż pusty obiekt:
db.dogs.remove({})