MongoDB zapewnia swoim użytkownikom możliwość tworzenia nowoczesnych baz danych, które są łatwo dostępne i łatwo się nimi manipuluje.
MongoDB to baza danych typu open source NoSQL dostępna do użytku we wszystkich systemach operacyjnych.
Jeśli nauczyłeś się projektowania baz danych w szkole, prawdopodobnie nie nauczyłeś się obsługi MongoDB lub nie zdobyłeś dużego doświadczenia z bazami danych NoSQL. Nic dziwnego - do 1998 roku wiele osób nawet nie słyszało o NoSQL, a dopiero w 2009 roku bazy danych NoSQL zaczęły zyskiwać na popularności.
Co to jest NoSQL?
Skrót SQL oznacza „strukturalny język zapytań”. SQL służy do wykonywania operacji matematycznych na danych przechowywanych w bazach danych o sztywnej strukturze według wierszy i kolumn (tabel).
Akronim NoSQL, w zależności od tego, kogo zapytasz, oznacza „nie tylko SQL” lub „nie SQL”. Jednak jeden fakt, że wszyscy może się zgodzić, że NoSQL jest używany do wykonywania operacji na danych przechowywanych w bazach danych, które nie są uporządkowane według wierszy i kolumny.
Istnieje kilka baz danych NoSQL, ale nazwa, która stoi ponad resztą, to MongoDB. W rzeczywistości niektórzy uważają, że MongoDB jest jedyną tego typu bazą danych.
Co to jest MongoDB?
NoSQL obsługuje cztery różne typy baz danych: dokumenty, magazyny klucz-wartość, zorientowane na kolumny i wykresy. MongoDB to baza danych dokumentów, ponieważ przechowuje dane w dokumencie podobnym do formatu JSON i podobnie jak wszystkie bazy danych obsługuje wszystkie niezbędne operacje CRUD.
Związane z: Jak baza danych MongoDB może lepiej organizować dane
Co to są operacje CRUD?
Akronim CRUD oznacza „tworzenie, odczytywanie, aktualizowanie i usuwanie”. CRUD reprezentuje cztery podstawowe wymagania funkcjonalne wszystkich baz danych. Jeśli używasz bazy danych, która nie pozwala na tworzenie, odczytywanie, aktualizowanie ani usuwanie rekordów, to nie jest to baza danych.
Pobierz MongoDB
Zanim będziesz mógł wykonywać jakiekolwiek operacje CRUD w MongoDB, musisz pobrać i zainstalować MongoDB na swoim urządzenie (lub skorzystaj z dostępnej wersji chmury), uruchom serwer MongoDB, połącz się z nim i na koniec utwórz nowy Baza danych.
Serwer MongoDB można pobrać z oficjalnego Witryna MongoDB.
Wykonywanie serwera MongoDB
Uruchom serwer MongoDB z konsoli swojego IDE.
/Users/Administrator/mongodb/bin/mongod.exe --dbpath = / Users / Administrator / mongodb-data
Powyższy kod wykonuje serwer MongoDB. Pierwsza połowa zawiera bezpośrednią ścieżkę do pliku wykonywalnego MongoDB (mongod.exe), który jest przechowywany na Twoim urządzeniu. Ścieżka na twoim urządzeniu powinna być inna, ale celem jest dotarcie do pliku mongod.exe w folderze bin.
Druga połowa kodu (oddzielona spacją) to inna nazwa ścieżki. Ta ścieżka prowadzi do „mongodb-data”, czyli pliku, który należy utworzyć samodzielnie. Ten plik będzie zawierał wszystkie dane utworzone w naszej bazie danych.
Nasz plik nazywa się „mongodb-data”, ale może to być dowolna nazwa, którą uznasz za stosowną.
Wykonanie powyższego kodu powinno wygenerować kilka wierszy kodu, ale dwa wiersze, na które należy zwrócić szczególną uwagę, można zobaczyć poniżej:
{"t": {"$ date": "2021-04-14T18: 10: 11.779-05: 00"}, "s": "I", "c": "SIEĆ", "id": 23015, "ctx": "listener", "msg": "Nasłuchuję", "attr": {"address": "127.0.0.1"}}
{"t": {"$ date": "2021-04-14T18: 10: 11.797-05: 00"}, "s": "I", "c": "SIEĆ", "id": 23016, "ctx": "listener", "msg": "Oczekiwanie na połączenia", "attr": {"port": 27017, "ssl": "off"}}
Te dwie linie zawierają odpowiednio localhost i domyślny port serwera MongoDB. Te dwie liczby są potrzebne do późniejszego utworzenia połączenia z serwerem MongoDB, abyśmy mogli wykonać nasze operacje CRUD.
Wykonywanie operacji CRUD
Teraz, gdy nasz serwer MongoDB jest już uruchomiony, możemy połączyć się z nim (za pomocą odpowiedniego sterownika) i rozpocząć wykonywanie operacji CRUD. W tym artykule utworzymy prostą bazę danych użytkowników, w której będą przechowywane imiona i nazwiska oraz wiek naszych użytkowników.
Tworzenie użytkownika
Istnieją dwa główne sposoby wstawiania użytkowników do bazy danych MongoDB. Obie metody są dość podobne, ale metoda, którą należy wybrać, zależy od liczby użytkowników, których chcesz utworzyć w określonej instancji. Jeśli Twoim celem jest utworzenie jednego użytkownika, powinieneś użyć rozszerzenia insertOne metoda.
Jeśli jednak celem jest utworzenie więcej niż jednego użytkownika naraz, plik insertMany metoda jest lepszą opcją.
Przykład metody MongoDB insertOne
// zaimportuj mongodb i użyj destrukturyzacji, aby uzyskać funkcję MongoClient
const {MongoClient} = require ("mongodb");
// adres URL połączenia i baza danych, z którą zamierzamy się połączyć
const connectionURL = 'mongodb: //127.0.0.1: 27017';
const databaseName = 'menadżer-użytkownika';
// użycie funkcji connect w MongoClient, aby połączyć się z serwerem MongoDB
MongoClient.connect (connectionURL, {useUnifiedTopology: true}, (błąd, klient) => {
// sprawdź, czy połączenie zostało nawiązane
if (błąd) {
return console.log ('Nie można połączyć się z bazą danych');
}
// dostęp do bazy danych menedżera użytkowników
const db = client.db (nazwa_bazy_danych);
// wstaw jednego użytkownika do bazy danych
db.collection ('użytkownicy'). insertOne ({
imię: 'John Doe',
wiek: '28'
}, (błąd, wynik) => {
if (błąd) {
return console.log ('Nie można utworzyć użytkownika');
}
console.log (result.ops);
})
})
Zanim będziemy mogli utworzyć użytkowników, należy nawiązać połączenie z serwerem MongoDB przy użyciu sterownika MongoDB w języku, którego używasz. Najpopularniejszym sterownikiem i tym, którego używamy w tym samouczku, jest sterownik NodeJS.
Dzięki pierwszej linii naszego kodu powyżej jesteśmy w stanie użyć metody destrukturyzacji w celu pobrania funkcji MongoClient z naszego serwera.
MongoClient akceptuje trzy argumenty:
- Adres URL (używany do łączenia się z serwerem MongoDB)
- Opcje / ustawienia (w tym przypadku ustawienie zmiennej „useUnifiedTopology” na wartość true, aby ułatwić korzystanie z nowego mechanizmu wykrywania i monitorowania serwera)
- Funkcja zwrotna, która przyjmuje dwa argumenty (błąd i klient)
W ramach funkcji zwrotnej metody MongoClient możemy wreszcie wstawić użytkownika do naszej bazy danych. Ale zanim dojdziemy do tego punktu, musimy uzyskać dostęp do bazy danych menedżerów użytkowników.
Jedną z zalet korzystania z MongoDB jest to, że nie ma potrzeby jawnego tworzenia bazy danych. Gdy odniesienie do konkretnej bazy danych zostanie wygenerowane przy użyciu argumentu „klient” (jak widać w powyższym kodzie), możesz zacząć nią manipulować.
Odniesienie do wygenerowanej przez nas bazy danych menedżera użytkowników jest przechowywane w zmiennej „db”, której użyjemy do wstawienia naszego pierwszego użytkownika do bazy danych.
Korzystając z odnośnika „db” możemy stworzyć nową kolekcję, której nadamy nazwę „user”.
Plik insertOne metoda przyjmuje dwa wymagane argumenty; dokument (użytkownik) i funkcję zwrotną. Dzięki insertOne możemy wstawić użytkownika o nazwie Peter Davis z wiekiem 32, do naszej bazy danych.
Funkcja zwrotna przyjmuje dwa argumenty (błąd i wynik). Funkcja result zawiera metodę ops, której używamy, aby zobaczyć użytkownika, którego właśnie utworzyliśmy w naszej bazie danych. Daje to następujące dane wyjściowe w konsoli po wykonaniu powyższego kodu:
[{imię: „Peter Davis”, wiek: „32”, _id: 60772f869475e84740003c45}]
Chociaż podczas tworzenia użytkownika udostępniliśmy tylko dwa pola, na podstawie danych wyjściowych powyżej można zobaczyć, że zostało wygenerowane trzecie pole. To kolejna fajna rzecz dotycząca MongoDB; automatycznie generuje unikalny identyfikator dla każdego tworzonego dokumentu.
Związane z: Czym różni się modelowanie danych w MongoDB?
Czytanie użytkownika w MongoDB
Dwie główne metody używane do odczytywania dokumentów z MongoDB to: odnaleźć i findOne. Plik odnaleźć jest używana do odczytywania wielu dokumentów naraz, a plik findOne jest używana do odczytywania pojedynczego dokumentu naraz.
Przykład metody MongoDB findOne
// zaimportuj mongodb i użyj destrukturyzacji, aby pobrać metodę MongoClient
const {MongoClient} = require ("mongodb");
// adres URL połączenia i baza danych, z którą zamierzamy się połączyć
const connectionURL = 'mongodb: //127.0.0.1: 27017';
const databaseName = 'menadżer-użytkownika';
// użycie funkcji connect w MongoClient, aby połączyć się z serwerem MongoDB
MongoClient.connect (connectionURL, {useUnifiedTopology: true}, (błąd, klient) => {
// sprawdź, czy połączenie zostało nawiązane
if (błąd) {
return console.log ('Nie można połączyć się z bazą danych');
}
// utwórz bazę danych menedżera użytkowników
const db = client.db (nazwa_bazy_danych);
// znalezienie jednego użytkownika w bazie danych
db.collection ('users'). findOne ({name: 'Peter Davis'}, (error, user) => {
if (błąd) {
return console.log ('Nie można znaleźć użytkownika');
}
console.log (użytkownik);
})
});
Warto pamiętać, że zawsze będziesz musiał połączyć się z serwerem MongoDB i odpowiednią bazą danych, zanim będziesz mógł wykonać jakiekolwiek operacje CRUD (jak widać w naszym przykładzie powyżej).
Plik findOne metoda przyjmuje dwa wymagane argumenty. Pierwszy argument zawiera kryteria wyszukiwania; możesz wyszukać dokument, używając dowolnej nazwy zmiennej, która jest dla niego unikalna. W powyższym przykładzie używamy imienia „Peter Davis”.
Drugi argument metody findOne metoda to funkcja zwrotna, która przyjmuje dwa argumenty; pierwszy to błąd, jeśli nie można znaleźć dokumentu, a drugi to dokument (który nazwaliśmy „użytkownikiem”).
Wykonanie powyższego kodu spowoduje w konsoli następujący wynik:
{_id: 60772f869475e84740003c45, imię i nazwisko: „Peter Davis”, wiek: „32”}
Aktualizacja użytkownika w MongoDB
Istnieją dwie dostępne metody aktualizowania dokumentów w MongoDB. Chociaż struktura obu jest bardzo podobna, updateOne służy do aktualizowania jednego dokumentu naraz i updateMany służy do jednoczesnej aktualizacji wielu dokumentów.
Przykład metody MongoDB updateOne
// Zaktualizuj wiek użytkownika
db.collection ('użytkownicy'). updateOne ({nazwa: "Peter Davis"},
{
$ set: {
wiek: '24'
}
})
Za pomocą powyższego kodu możemy zaktualizować wiek Petera Davisa do 24 lat.
Usuwanie użytkownika w MongoDB
Istnieją dwie metody usuwania dokumentu z MongoDB. Plik deleteOne służy do usuwania pojedynczego dokumentu, a plik deleteMany Metoda służy do usuwania wielu dokumentów.
Przykład metody MongoDB deleteOne
// usuń dokument
db.collection ('użytkownicy'). deleteOne ({nazwa: 'Peter Davis'})
Operacja usuwania jest najprostszą operacją CRUD, którą można wykonać w MongoDB. Jak widać w powyższym przykładzie (bez wymaganego kodu połączenia i funkcji zwrotnej), zajmuje to tylko jedną linię kodu.
Możesz teraz wykonywać operacje CRUD w MongoDB
Teraz masz podstawową wiedzę o MongoDB i wiesz, co oznacza NoSQL. Wiesz również, co oznacza skrót CRUD i dlaczego te operacje są podstawowymi cechami każdej bazy danych.
Ten artykuł zawiera wszystkie narzędzia niezbędne do wykonania czterech podstawowych operacji CRUD w MongoDB. Teraz, gdy masz już wiedzę na temat operacji CRUD, możesz zacząć uczyć się, jak najlepiej modelować dane za pomocą MongoDB.
Źródło: Alexander Sosluev /WiKiMedia Commons
Rozważasz inne podejście do baz danych? Oto jak działa modelowanie danych w MongoDB.
Czytaj dalej
- Programowanie
- Samouczki kodowania
- Baza danych
Kadeisha Kean jest pełnoprawnym programistą i autorem techniczno-technologicznym. Ma wyraźną umiejętność upraszczania niektórych najbardziej złożonych koncepcji technologicznych; wytwarzanie materiału zrozumiałego dla każdego nowicjusza w dziedzinie technologii. Pasjonuje się pisaniem, tworzeniem ciekawego oprogramowania i podróżowaniem po świecie (poprzez filmy dokumentalne).
Zapisz się do naszego newslettera
Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.