Zapoznaj się z zapytaniami i operacjami MongoDB, korzystając z tego przydatnego przewodnika.
MongoDB to jedna z najbardziej pożądanych i podziwianych baz danych NoSQL do profesjonalnego rozwoju. Jego elastyczność, skalowalność i zdolność do obsługi dużych ilości danych sprawiają, że jest to najlepszy wybór dla nowoczesnych aplikacji. Jeśli chcesz opanować regularne zapytania i operacje MongoDB, jesteś we właściwym miejscu.
Niezależnie od tego, czy chcesz wydajnie pobierać dane i nimi manipulować, wdrażać solidne modele danych, czy budować responsywnie aplikacji, zdobycie głębokiego zrozumienia typowych zapytań i operacji MongoDB niewątpliwie poprawi Twoje umiejętności.
1. Utwórz lub przełącz bazy danych
Tworzenie bazy danych lokalnie za pomocą MongoDB Shell jest proste, zwłaszcza jeśli skonfigurowałeś zdalny klaster. Możesz utworzyć nową bazę danych w MongoDB za pomocą używać Komenda:
use db_name
Chociaż powyższe polecenie tworzy nową bazę danych, możesz użyć go do przełączenia się do istniejącej bazy danych bez tworzenia nowej od podstaw.
2. Upuść bazę danych
Najpierw przełącz się do bazy danych, którą chcesz usunąć, używając używać polecenie jak poprzednio. Następnie upuść bazę danych za pomocą upuść bazę danych() Komenda:
use db_name
db.dropDatabase()
3. Utwórz kolekcję
Aby utworzyć kolekcję, przełącz się do docelowej bazy danych. Użyj utwórz kolekcję() słowo kluczowe, aby utworzyć nową kolekcję MongoDB:
db.createCollection("collection_name")
Zastępować nazwa_kolekcji z wybraną nazwą kolekcji.
4. Wstaw dokument do kolekcji
Podczas wysyłania danych do kolekcji można wstawić pojedynczy dokument lub tablicę dokumentów.
Aby wstawić pojedynczy dokument:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Możesz także użyć powyższej metody, aby wstawić tablicę dokumentów z jednym identyfikatorem:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Aby wstawić wiele dokumentów jednocześnie, z których każdy ma osobne identyfikatory, użyj metody wstaw Wiele słowo kluczowe:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Pobierz wszystkie dokumenty z kolekcji
Możesz wyszukiwać wszystkie dokumenty z kolekcji za pomocą znajdować() słowo kluczowe:
db.collection_name.find()
Powyższe zwraca wszystkie dokumenty w określonej kolekcji:
Możesz także ograniczyć zwracane dane do określonej liczby. Na przykład możesz użyć następującego polecenia, aby pobrać tylko dwa pierwsze dokumenty:
db.collection_name.find().limit(2)
6. Filtruj dokumenty w kolekcji
Istnieje wiele sposobów filtrowania dokumentów w MongoDB. Rozważmy na przykład następujące dane:
Jeśli wysyłasz zapytanie tylko do określonego pola w dokumencie, użyj metody znajdować metoda:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Powyższe zwraca wszystkie dokumenty, w których wartość Lubi Jest Słowo. Wyświetla tylko nazwy i ignoruje identyfikator dokumentu.
Kolekcję można również filtrować według współczynnika liczbowego. Powiedzmy, że chcesz uzyskać nazwy wszystkich użytkowników starszych niż 21 lat, użyj metody $ gt operator:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Wyjście wygląda tak:
Spróbuj wymienić znajdować z znajdźJeden aby zobaczyć, co się stanie. Istnieje jednak wiele innych filtrujących słów kluczowych:
- $lt: Wszystkie wartości mniejsze niż określona.
- $gte: Wartości równe lub większe niż określona.
- $lte: Wartości, które są mniejsze lub równe określonej wartości.
- ekwiwalent $: Pobiera wszystkie wartości równe określonej.
- $ne: Wszystkie wartości nie są równe podanej.
- $w: Użyj tego podczas wykonywania zapytań na podstawie tablicy. Pobiera wszystkie wartości pasujące do dowolnego elementu w tablicy. The ninja słowo kluczowe działa odwrotnie.
7. Sortuj zapytania
Sortowanie pomaga uporządkować zapytanie w określonej kolejności. Możesz sortować w kolejności malejącej lub rosnącej. Należy pamiętać, że sortowanie wymaga odniesienia numerycznego.
Na przykład, aby posortować w porządku rosnącym:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Aby uporządkować powyższe zapytanie w kolejności malejącej, zastąp „1” ciągiem „-1”.
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Zaktualizuj dokument
Aktualizacje MongoDB wymagają od operatorów atomowych określenia sposobu przeprowadzenia aktualizacji. Oto lista często używanych operatorów atomowych, które można sparować z zapytaniem o aktualizację:
- $ustaw: Dodaj nowe pole lub zmień istniejące pole.
- $pchnij: Wstaw nowy element do tablicy. Połącz to z $każdy operatora do wstawiania wielu elementów jednocześnie.
- $ciągnąć: Usuń element z tablicy. Użyj go z $w usunąć wiele elementów za jednym razem.
- $rosz: Usuń pole z dokumentu.
Aby zaktualizować dokument i dodać nowe pole, na przykład:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Powyższe aktualizuje określony dokument, jak pokazano:
Usunięcie pola e-mail jest proste dzięki $rosz operator:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Rozważ następujące przykładowe dane:
Możesz wstawić element do istniejącego rzeczy pole tablicy za pomocą $pchnij operator:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Oto dane wyjściowe:
Użyj $każdy operator, aby wstawić wiele elementów jednocześnie:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Oto dane wyjściowe:
Jak wspomniano, $ciągnąć operator usuwa element z tablicy:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Zaktualizowane dane wyglądają następująco:
Zawierać $w słowo kluczowe, aby usunąć wiele elementów z tablicy za jednym razem:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Usuń dokument lub pole
The usuń jeden Lub usuń Wiele słowo kluczowe kasuje dokument z kolekcji. Używać usuń jeden aby usunąć dokument na podstawie określonego pola:
db.collection_name.deleteOne({"Name":"IDNoble"})
Jeśli chcesz usunąć wiele dokumentów ze wspólnymi kluczami, użyj usuń Wiele Zamiast. Poniższe zapytanie usuwa wszystkie dokumenty zawierające Szachy jak ich Lubi.
db.collection.deleteMany({"Likes":"Chess"})
10. Operacja indeksowania
Indeksowanie poprawia wydajność zapytań, usprawniając liczbę dokumentów, które MongoDB musi przeskanować. Często najlepiej jest utworzyć indeks dla pól, które są częściej wyszukiwane.
Indeksowanie MongoDB jest podobne do twojego używać indeksów do optymalizacji zapytań SQL. Na przykład, aby utworzyć rosnący indeks na Nazwa pole:
db.collection.createIndex({"Name":1})
Aby wyświetlić listę indeksów:
db.collection.getIndexes()
Powyższe to tylko wstęp. Istnieje kilka innych metod tworzenie indeksu w MongoDB.
11. Zbiór
Potok agregacji, ulepszona wersja MapReduce, umożliwia uruchamianie i przechowywanie złożonych obliczeń z poziomu MongoDB. W przeciwieństwie do MapReduce, który wymaga napisania mapy i funkcji redukcji osobno Funkcje JavaScriptu, agregacja jest prosta i wykorzystuje tylko wbudowane metody MongoDB.
Rozważmy na przykład następujące dane dotyczące sprzedaży:
Korzystając z agregacji MongoDB, możesz obliczyć i przechowywać całkowitą liczbę sprzedanych produktów dla każdej kategorii w następujący sposób:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Powyższe zapytanie zwraca następujące informacje:
Opanuj zapytania MongoDB
MongoDB oferuje wiele metod wykonywania zapytań, w tym funkcje poprawiające wydajność zapytań. Niezależnie od języka programowania, powyższe struktury zapytań są podstawowe do interakcji z bazą danych MongoDB.
Mogą jednak występować pewne rozbieżności w podstawowej składni. Na przykład, podczas gdy niektóre języki programowania, takie jak Python, rozpoznają przypadki węża, inne, w tym JavaScript, używają przypadku wielbłąda. Upewnij się, że badasz, co działa dla wybranej technologii.