Machen Sie sich mithilfe dieses praktischen Leitfadens mit MongoDB-Abfragen und -Vorgängen vertraut.
MongoDB ist eine der begehrtesten und am meisten geschätzten NoSQL-Datenbanken für die berufliche Weiterentwicklung. Seine Flexibilität, Skalierbarkeit und die Fähigkeit, große Datenmengen zu verarbeiten, machen es zur ersten Wahl für moderne Anwendungen. Wenn Sie die regulären Abfragen und Operationen von MongoDB beherrschen möchten, sind Sie hier richtig.
Ganz gleich, ob Sie Daten effizient abrufen und bearbeiten, robuste Datenmodelle implementieren oder reaktionsfähig erstellen möchten Anwendungen, der Erwerb eines tiefen Verständnisses gängiger MongoDB-Abfragen und -Operationen wird Ihre Arbeit zweifellos verbessern Fähigkeiten.
1. Datenbanken erstellen oder wechseln
Das lokale Erstellen einer Datenbank über die MongoDB-Shell ist unkompliziert, insbesondere wenn Sie einen Remote-Cluster eingerichtet haben. Sie können mit dem eine neue Datenbank in MongoDB erstellen verwenden Befehl:
use db_name
Während der obige Befehl eine neue Datenbank erstellt, können Sie damit zu einer vorhandenen Datenbank wechseln, ohne eine neue Datenbank erstellen zu müssen.
2. Datenbank löschen
Wechseln Sie zunächst mit zu der Datenbank, die Sie löschen möchten verwenden Befehl wie zuvor ausgeführt. Löschen Sie dann die Datenbank mithilfe von dropDatabase() Befehl:
use db_name
db.dropDatabase()
3. Erstellen Sie eine Sammlung
Um eine Sammlung zu erstellen, wechseln Sie zur Zieldatenbank. Benutzen Sie die createCollection() Schlüsselwort zum Erstellen einer neuen MongoDB-Sammlung:
db.createCollection("collection_name")
Ersetzen Sammlungsname mit dem von Ihnen gewählten Sammlungsnamen.
4. Dokument in eine Sammlung einfügen
Beim Senden von Daten an eine Sammlung können Sie ein einzelnes Dokument oder eine Reihe von Dokumenten einfügen.
So fügen Sie ein einzelnes Dokument ein:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Sie können die obige Methode auch verwenden, um ein Array von Dokumenten mit einer ID einzufügen:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Um viele Dokumente gleichzeitig einzufügen, wobei jedes Dokument eine eigene ID hat, verwenden Sie die insertMany Stichwort:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Holen Sie sich alle Dokumente aus einer Sammlung
Mit dem können Sie alle Dokumente einer Sammlung abfragen finden() Stichwort:
db.collection_name.find()
Das Obige gibt alle Dokumente in der angegebenen Sammlung zurück:
Sie können die zurückgegebenen Daten auch auf eine bestimmte Anzahl beschränken. Sie können beispielsweise den folgenden Befehl verwenden, um nur die ersten beiden Dokumente abzurufen:
db.collection_name.find().limit(2)
6. Filtern Sie Dokumente in einer Sammlung
Es gibt viele Möglichkeiten, Dokumente in MongoDB zu filtern. Betrachten Sie zum Beispiel die folgenden Daten:
Wenn Sie nur ein bestimmtes Feld in einem Dokument abfragen, verwenden Sie die finden Methode:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Das Obige gibt alle Dokumente zurück, bei denen der Wert von Likes Ist Wordle. Es werden nur die Namen ausgegeben und die Dokument-ID ignoriert.
Sie können eine Sammlung auch nach einem numerischen Faktor filtern. Angenommen, Sie möchten die Namen aller Benutzer erhalten, die älter als 21 Jahre sind, verwenden Sie die $gt Operator:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Die Ausgabe sieht so aus:
Versuchen Sie es mit einem Austausch finden mit einen finden um zu sehen, was passiert. Es gibt jedoch noch viele andere Filterschlüsselwörter:
- $lt: Alle Werte kleiner als der angegebene.
- $gte: Werte gleich oder größer als der angegebene Wert.
- $lte: Werte, die kleiner oder gleich dem definierten Wert sind.
- $eq: Ruft alle Werte ab, die dem angegebenen Wert entsprechen.
- $ne: Alle Werte ungleich dem angegebenen.
- $in: Verwenden Sie dies, wenn Sie eine Abfrage basierend auf einem Array durchführen. Es werden alle Werte abgerufen, die mit einem der Elemente im Array übereinstimmen. Der $nin Das Schlüsselwort bewirkt das Gegenteil.
7. Abfragen sortieren
Durch Sortieren können Sie die Abfrage in einer bestimmten Reihenfolge anordnen. Sie können in absteigender oder aufsteigender Reihenfolge sortieren. Beachten Sie, dass für die Sortierung eine numerische Referenz erforderlich ist.
Um beispielsweise in aufsteigender Reihenfolge zu sortieren:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Um die obige Abfrage in absteigender Reihenfolge zu sortieren, ersetzen Sie „1“ durch „-1“.
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Aktualisieren Sie ein Dokument
MongoDB-Updates erfordern atomare Operatoren, um anzugeben, wie das Update durchgeführt werden soll. Hier ist eine Liste häufig verwendeter atomarer Operatoren, die Sie mit einer Aktualisierungsabfrage koppeln können:
- $set: Ein neues Feld hinzufügen oder ein vorhandenes Feld ändern.
- $push: Ein neues Element in ein Array einfügen. Kombinieren Sie es mit dem $jeder Der Bediener kann viele Elemente gleichzeitig einfügen.
- $ziehen: Ein Element aus einem Array entfernen. Benutze es mit $in um viele Gegenstände auf einmal zu entfernen.
- $unset: Ein Feld aus einem Dokument entfernen.
So aktualisieren Sie ein Dokument und fügen ein neues Feld hinzu, zum Beispiel:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Das Obige aktualisiert das angegebene Dokument wie gezeigt:
Das Entfernen des E-Mail-Felds ist mit dem einfach $unset Operator:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Betrachten Sie die folgenden Beispieldaten:
Sie können ein Element in das vorhandene einfügen Artikel Array-Feld mit dem $push Operator:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Hier ist die Ausgabe:
Benutzen Sie die $jeder Operator zum gleichzeitigen Einfügen vieler Elemente:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Hier ist die Ausgabe:
Wie bereits erwähnt, die $ziehen Operator entfernt ein Element aus einem Array:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Die aktualisierten Daten sehen folgendermaßen aus:
Umfassen die $in Schlüsselwort, um viele Elemente in einem Array auf einmal zu entfernen:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Löschen Sie ein Dokument oder ein Feld
Der deleteOne oder deleteMany Mit dem Schlüsselwort wird ein Dokument aus einer Sammlung gelöscht. Verwenden deleteOne So entfernen Sie ein Dokument basierend auf einem angegebenen Feld:
db.collection_name.deleteOne({"Name":"IDNoble"})
Wenn Sie viele Dokumente mit gemeinsamen Schlüsseln löschen möchten, verwenden Sie deleteMany stattdessen. Die folgende Abfrage löscht alle Dokumente, die Folgendes enthalten Schach wie ihr Likes.
db.collection.deleteMany({"Likes":"Chess"})
10. Indexierungsvorgang
Die Indizierung verbessert die Abfrageleistung, indem sie die Anzahl der Dokumente rationalisiert, die MongoDB scannen muss. Oft ist es am besten, einen Index für Felder zu erstellen, die Sie häufiger abfragen.
Die MongoDB-Indizierung ähnelt Ihrer Verwenden Sie Indizes, um SQL-Abfragen zu optimieren. Um beispielsweise einen aufsteigenden Index für zu erstellen Name Feld:
db.collection.createIndex({"Name":1})
So listen Sie Ihre Indizes auf:
db.collection.getIndexes()
Das Obige ist nur eine Präambel. Es gibt mehrere andere Methoden für Erstellen eines Indexes in MongoDB.
11. Anhäufung
Mit der Aggregationspipeline, einer verbesserten Version von MapReduce, können Sie komplexe Berechnungen in MongoDB ausführen und speichern. Im Gegensatz zu MapReduce, bei dem die Map- und Reduce-Funktionen getrennt geschrieben werden müssen JavaScript-FunktionenDie Aggregation ist unkompliziert und verwendet nur integrierte MongoDB-Methoden.
Betrachten Sie beispielsweise die folgenden Verkaufsdaten:
Mit der Aggregation von MongoDB können Sie die Gesamtzahl der verkauften Produkte für jede Kategorie wie folgt berechnen und speichern:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Die obige Abfrage gibt Folgendes zurück:
Meistern Sie MongoDB-Abfragen
MongoDB bietet viele Abfragemethoden, einschließlich Funktionen zur Verbesserung der Abfrageleistung. Unabhängig von Ihrer Programmiersprache sind die oben genannten Abfragestrukturen rudimentär für die Interaktion mit einer MongoDB-Datenbank.
Es kann jedoch zu einigen Abweichungen in der Basissyntax kommen. Während beispielsweise einige Programmiersprachen wie Python Schlangenfälle erkennen, verwenden andere, einschließlich JavaScript, den Kamelfall. Stellen Sie sicher, dass Sie recherchieren, was für die von Ihnen gewählte Technologie funktioniert.