Jak zacząć pracę z MongoDB w 10 minut
by Navindu Jayatilake
MongoDB to bogata, zorientowana na dokumenty baza danych NoSQL.
Jeśli jesteś kompletnym początkującym Nosqlem, polecam rzucić okiem na mój artykuł NoSQL opublikowany wcześniej.
Dzisiaj chciałem podzielić się kilkoma podstawowymi rzeczami dotyczącymi komend MongoDB, takimi jak zapytania, filtrowanie danych, usuwanie, aktualizowanie i tak dalej.
dobra, dość gadania, do roboty!
Konfiguracja ?
aby pracować z MongoDB, najpierw musisz zainstalować MongoDB na swoim komputerze. Aby to zrobić, odwiedź oficjalne Centrum pobierania i pobierz wersję dla określonego systemu operacyjnego. Tutaj, używałem okien.
Po pobraniu MongoDB community server setup, przejdziesz przez proces instalacji 'next after next’. Po zakończeniu przejdź do dysku C, na którym zainstalowałeś MongoDB. Przejdź do program files i wybierz katalog MongoDB.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
w katalogu bin znajdziesz kilka interesujących plików wykonywalnych.
- mongod
- mongo
porozmawiajmy o tych dwóch plikach.
mongod oznacza „Mongo Daemon”. mongod jest procesem w tle używanym przez MongoDB. Głównym celem mongod jest zarządzanie wszystkimi zadaniami serwera MongoDB. Na przykład przyjmowanie żądań, odpowiadanie na klienta i zarządzanie pamięcią.
mongo jest powłoką wiersza poleceń, która może wchodzić w interakcje z Klientem (na przykład administratorami systemu i programistami).
teraz zobaczmy, jak możemy uruchomić ten serwer. Aby to zrobić w systemie Windows, najpierw musisz utworzyć kilka katalogów na dysku C. Otwórz wiersz polecenia wewnątrz dysku C i wykonaj następujące czynności:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
celem tych katalogów jest MongoDB wymaga folderu do przechowywania wszystkich danych. Domyślna ścieżka katalogu danych MongoDB to /data/db
na dysku. Dlatego konieczne jest, abyśmy udostępnili te katalogi w ten sposób.
jeśli uruchomisz Serwer MongoDB bez tych katalogów, prawdopodobnie zobaczysz następujący błąd:
Po utworzeniu tych dwóch plików przejdź ponownie do folderu bin w katalogu mongodb i Otwórz powłokę w środku. Uruchom następujące polecenie:
mongod
Voilà! Teraz nasz serwer MongoDB jest gotowy do działania! ?
aby pracować z tym serwerem, potrzebujemy mediatora. Otwórz więc inne okno poleceń wewnątrz folderu bind i uruchom następujące polecenie:
mongo
Po uruchomieniu tego polecenia przejdź do powłoki, którą uruchomiliśmy polecenie mongod (które jest naszym serwerem). Na końcu zobaczysz komunikat „Połączenie zaakceptowane”. Oznacza to, że nasza instalacja i konfiguracja zakończyła się sukcesem!
Po prostu uruchom w powłoce mongo:
db
konfigurowanie zmiennych środowiskowych
aby zaoszczędzić czas, możesz skonfigurować zmienne środowiskowe. W systemie Windows, odbywa się to poprzez następujące menu poniżej:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
Po prostu skopiuj ścieżkę naszego folderu bin i naciśnij OK! W moim przypadku jest to C:\Program Files\MongoDB\Server\4.0\bin
teraz wszystko gotowe!
praca z MongoDB
istnieje kilka GUI (graficzny interfejs użytkownika) do pracy z serwerem MongoDB, takich jak MongoDB Compass, Studio 3T i tak dalej.
zapewniają interfejs graficzny, dzięki czemu można łatwo pracować z bazą danych i wykonywać zapytania zamiast używać powłoki i wpisywać zapytania ręcznie.
ale w tym artykule będziemy używać wiersza polecenia do naszej pracy.
nadszedł czas, abyśmy zanurzyli się w poleceniach MongoDB, które pomogą Ci w przyszłych projektach.
- Otwórz wiersz polecenia i wpisz
mongod
, aby uruchomić serwer MongoDB.
2. Otwórz inną powłokę i wpisz mongo
, aby połączyć się z serwerem bazy danych MongoDB.
1. Znajdowanie bieżącej bazy danych, w której się znajdujesz
db
To polecenie pokaże bieżącą bazę danych, w której się znajdujesz. test
jest domyślną bazą danych.
2. Lista baz danych
show databases
obecnie posiadam cztery bazy danych. Są to: CrudDB
admin
config
I local
.
3. Przejdź do konkretnej bazy danych
use <your_db_name>
tutaj przeniosłem się do local
baza danych. Możesz to sprawdzić, jeśli wypróbujesz polecenie db
, aby wydrukować bieżącą nazwę bazy danych.
4. Tworzenie bazy danych
za pomocą RDBMS (Relational Database Management Systems) mamy bazy danych, tabele, wiersze i kolumny.
ale w bazach danych NoSQL, takich jak MongoDB, dane są przechowywane w formacie BSON (binarna wersja JSON). Są one przechowywane w strukturach zwanych „zbiorami”.
w bazach danych SQL są one podobne do tabel.
w porządku, porozmawiajmy o tym, jak tworzymy bazę danych w powłoce Mongo.
use <your_db_name>
czekaj, mieliśmy już to polecenie! Dlaczego znowu go używam?!
w serwerze MongoDB, jeśli twoja baza danych jest już obecna, użycie tego polecenia przejdzie do twojej bazy danych.
ale jeśli bazy danych jeszcze nie ma, to MongoDB server utworzy bazę danych dla Ciebie. Następnie, będzie nawigować do niego.
Po utworzeniu nowej bazy danych, uruchomienie polecenia show database
nie pokaże nowo utworzonej bazy danych. Dzieje się tak dlatego, że dopóki nie zawiera żadnych danych (dokumentów), nie pojawi się na liście db.
5. Tworzenie kolekcji
przejdź do nowo utworzonej bazy danych za pomocą poleceniause
.
istnieją dwa sposoby tworzenia kolekcji. Zobaczmy jedno i drugie.
jednym ze sposobów jest wstawienie danych do kolekcji:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
spowoduje to utworzenie kolekcjimyCollection
nawet jeśli kolekcja nie istnieje. Następnie wstawi dokument z name
I age
. Są to Kolekcje bez limitu.
drugi sposób pokazano poniżej:
2.1 tworzenie kolekcji bez limitu
db.createCollection("myCollection")
2.2 tworzenie kolekcji bez limitu
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
w ten sposób utworzysz kolekcję bez wstawiania danych.
„ograniczona kolekcja” ma maksymalną liczbę dokumentów, która zapobiega przepełnieniu dokumentów.
w tym przykładzie włączyłem capping, ustawiając jego wartość na true
.
size : 2
oznacza limit dwóch megabajtów, amax: 2
ustawia maksymalną liczbę dokumentów na dwa.
teraz, jeśli spróbujesz wstawić więcej niż dwa dokumenty domySecondCollection
I użyjesz poleceniafind
(o którym wkrótce porozmawiamy), zobaczysz tylko ostatnio wstawione dokumenty. Pamiętaj, że nie oznacza to, że pierwszy dokument został usunięty — po prostu się nie wyświetla.
6. Wstawianie danych
możemy wstawić dane do nowej kolekcji lub do kolekcji, która została wcześniej utworzona.
istnieją trzy metody wstawiania danych.
-
insertOne()
służy do wstawiania tylko jednego dokumentu. -
insertMany()
służy do wstawiania więcej niż jednego dokumentu. -
insert()
służy do wstawiania dokumentów tyle, ile chcesz.
poniżej kilka przykładów:
- insertOne ()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany ()
db.myCollection.insertMany()
metodainsert()
jest podobna do metodyinsertMany()
metoda.
zauważ również, że dodaliśmy nową właściwość o nazwielocation
do dokumentu dlaJohn Doe
. Jeśli więc użyjesz find
, zobaczysz tylko dla john doe
dołączona jest właściwość location
.
To może być zaletą, jeśli chodzi o bazy danych NoSQL, takie jak MongoDB. Pozwala na skalowalność.
7. Zapytania do danych
oto jak możesz odpytywać wszystkie dane z kolekcji:
db.myCollection.find()
Jeśli chcesz zobaczyć te dane w czystszy sposób, po prostu dodaj .pretty()
na jego końcu. Spowoduje to wyświetlenie dokumentu w ładnie wydrukowanym formacie JSON.
db.myCollection.find().pretty()
Wait…In te przykłady czy zauważyłeś coś w stylu _id
? Jak to się tam dostało?
Cóż, za każdym razem, gdy wstawiasz dokument, MongoDB automatycznie dodaje pole_id
, które jednoznacznie identyfikuje każdy dokument. Jeśli nie chcesz go wyświetlać, po prostu uruchom następujące polecenie
db.myCollection.find({}, _id: 0).pretty()
następnie przyjrzymy się filtrowaniu danych.
Jeśli chcesz wyświetlić określony dokument, możesz określić pojedynczy szczegół dokumentu, który chcesz wyświetlić.
db.myCollection.find( { name: "john" })
powiedzmy, że chcesz wyświetlić tylko osoby, których wiek jest mniejszy niż 25 lat. Możesz użyć $lt
do filtrowania tego.
db.myCollection.find( { age : {$lt : 25} })
podobnie, $gt
oznacza większe niż, $lte
jest „mniejsze lub równe”, $gte
jest „większe lub równe” i $ne
8. Aktualizacja dokumentów
powiedzmy, że chcesz zaktualizować czyjś adres lub wiek, jak możesz to zrobić? Zobacz następny przykład:
db.myCollection.update({age : 20}, {$set: {age: 23}})
pierwszym argumentem jest pole, którego dokument chcesz zaktualizować. Tutaj podaję age
dla uproszczenia. W środowisku produkcyjnym można użyć czegoś takiego jak Pole _id
.
zawsze lepiej jest użyć czegoś w stylu _id
, aby zaktualizować unikalny wiersz. Dzieje się tak, ponieważ wiele pól może mieć takie same age
I name
. Dlatego, jeśli zaktualizujesz jeden wiersz, wpłynie to na wszystkie wiersze, które mają tę samą nazwę i wiek.
jeśli zaktualizujesz dokument w ten sposób o nową właściwość, powiedzmy na przykładlocation
, dokument zostanie zaktualizowany o nowy atrybut. A jeśli wykonasz find
, to wynik będzie:
Jeśli chcesz usunąć właściwość z pojedynczego dokumentu, możesz zrobić coś takiego (powiedzmy, że chcesz age
to be gone):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Usuwanie dokumentu
jak już wcześniej wspomniałem, podczas aktualizacji lub usuwania dokumentu wystarczy określić _id
nie tylko name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Usuwanie kolekcji
db.myCollection.remove({});
uwaga, nie jest to równe metodziedrop()
. Różnica polega na tym, że drop()
służy do usuwania wszystkich dokumentów wewnątrz kolekcji, ale metoda remove()
służy do usuwania wszystkich dokumentów wraz z samą kolekcją.
operatory logiczne
MongoDB udostępnia operatory logiczne. Poniższy obrazek podsumowuje różne typy operatorów logicznych.
powiedzmy, że chcesz wyświetlić osoby, których wiek jest mniejszy niż 25 lat, a także których lokalizacja jest Kolombo. Co możemy zrobić?
możemy użyć$and
operatora!
db.myCollection.find({$and:});
na koniec porozmawiajmy o agregacji.
agregacja
szybkie przypomnienie o tym, czego dowiedzieliśmy się o funkcjach agregacji w bazach danych SQL:
Mówiąc najprościej, agregacja grupuje wartości z wielu dokumentów i podsumowuje je w jakiś sposób.
wyobraź sobie, że mamy uczniów i uczennice w kolekcji recordBook
i chcemy mieć całkowitą liczbę na każdą z nich. Aby uzyskać sumę samców i samic, możemy użyć$group
funkcji agregującej.
db.recordBook.aggregate();
podsumowanie
podstawy MongoDB, które mogą być potrzebne w przyszłości do zbudowania aplikacji. Mam nadzieję, że podobał Ci się ten artykuł-dzięki za przeczytanie!