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:

próba uruchomienia serwera mongodb bez katalogów \data\db

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
początkowo masz db o nazwie 'test’

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.

  1. 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: CrudDBadminconfig 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.

warunki SQL i NoSQL terms by Victoria Malaya

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.

sposoby przechowywania danych w JSON

istnieją trzy metody wstawiania danych.

  1. insertOne() służy do wstawiania tylko jednego dokumentu.
  2. insertMany() służy do wstawiania więcej niż jednego dokumentu.
  3. 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ść.

pomyślnie wstawione dane

7. Zapytania do danych

oto jak możesz odpytywać wszystkie dane z kolekcji:

db.myCollection.find()
result

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()
wynik

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" })
result

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.

result

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:

result

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ć _idnie tylko nameagelocation.

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.

odniesienie: MongoDB manual

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:

funkcje agregacji w bazach danych SQL. ref: Tutorial Gateway

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();
wynik

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!



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.