Ausführen von CRUD-Operationen in MongoDB
MongoDB bietet seinen Benutzern die Möglichkeit, moderne Datenbanken zu erstellen, auf die leicht zugegriffen und die manipuliert werden können.
MongoDB ist eine NoSQL-Open-Source-Datenbank, die auf allen Betriebssystemen verfügbar ist.
Wenn Sie in der Schule das Datenbankdesign gelernt haben, haben Sie wahrscheinlich nicht gelernt, wie man MongoDB verwendet, oder Sie haben viel Erfahrung mit NoSQL-Datenbanken gesammelt. Dies ist keine Überraschung – bis 1998 hatten viele Menschen noch nicht einmal von NoSQL gehört, und erst 2009 gewannen NoSQL-Datenbanken an Bedeutung.
Was ist NoSQL?
Das Akronym SQL steht für "strukturierte Abfragesprache". SQL wird verwendet, um mathematische Operationen an Daten auszuführen, die in Datenbanken gespeichert sind, die starr nach Zeilen und Spalten (Tabellen) strukturiert sind.
Das Akronym NoSQL steht je nachdem, wen Sie fragen, für "nicht nur SQL" oder "Nicht-SQL". Die einzige Tatsache, auf die sich alle einigen können, ist, dass NoSQL verwendet wird, um Operationen an Daten auszuführen, die in Datenbanken gespeichert sind, die nicht durch Zeilen und Spalten strukturiert sind.
Es gibt einige NoSQL-Datenbanken, aber der Name, der über dem Rest steht, ist MongoDB. In der Tat denken einige Leute, dass MongoDB die einzige Datenbank dieser Art ist.
Was ist MongoDB?
NoSQL unterstützt vier verschiedene Arten von Datenbanken: Dokument, Schlüsselwertspeicher, spaltenorientiert und Grafik. MongoDB ist eine Dokumentendatenbank, da sie Daten in einem JSON-ähnlichen Dokument speichert und wie alle Datenbanken alle wesentlichen CRUD-Operationen unterstützt.
Was sind CRUD-Operationen?
Das Akronym CRUD steht für "Erstellen, Lesen, Aktualisieren und Löschen". CRUD repräsentiert die vier grundlegenden funktionalen Anforderungen aller Datenbanken. Wenn Sie eine Datenbank verwenden, in der Sie keine Datensätze erstellen, lesen, aktualisieren oder löschen können, handelt es sich nicht um eine Datenbank.
Laden Sie MongoDB herunter
Bevor Sie CRUD-Vorgänge in MongoDB ausführen können, müssen Sie MongoDB herunterladen und auf Ihrem Gerät installieren (oder eine verfügbare Cloud-Version verwenden), den MongoDB-Server ausführen, eine Verbindung zu ihm herstellen und schließlich eine neue Datenbank erstellen.
Der MongoDB-Server kann von der offiziellen MongoDB-Website heruntergeladen werden .
Ausführen des MongoDB-Servers
Führen Sie den MongoDB-Server über die Konsole Ihrer IDE aus.
/Users/Administrator/mongodb/bin/mongod.exe --dbpath=/Users/Administrator/mongodb-data
Der obige Code führt den MongoDB-Server aus. Die erste Hälfte enthält den direkten Pfad zur ausführbaren MongoDB-Datei (mongod.exe), die auf Ihrem Gerät gespeichert ist. Der Pfadname auf Ihrem Gerät sollte unterschiedlich sein, aber das Ziel ist es, die Datei mongod.exe im Ordner bin zu erreichen.
Die zweite Hälfte des Codes (die durch die Leertaste getrennt ist) ist ein weiterer Pfadname. Dieser Pfad führt zu „Mongodb-Daten“, einer Datei, die Sie selbst erstellen müssen. Diese Datei enthält alle Daten, die in unserer Datenbank erstellt wurden.
Unsere Datei heißt "Mongodb-Daten", aber der Name kann so sein, wie Sie es für geeignet halten.
Das Ausführen des obigen Codes sollte mehrere Codezeilen erzeugen, aber die zwei Zeilen, auf die Sie besonders achten müssen, sind unten zu sehen:
{"t":{"$date":"2021-04-14T18:10:11.779-05:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"127.0.0.1"}}
{"t":{"$date":"2021-04-14T18:10:11.797-05:00"},"s":"I", "c":"NETWORK", "id":23016, "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}
Diese beiden Zeilen enthalten den lokalen Host und den Standardport des MongoDB-Servers. Diese beiden Nummern werden benötigt, um später eine Verbindung zum MongoDB-Server herzustellen, damit wir unsere CRUD-Operationen ausführen können.
CRUD-Operationen durchführen
Nachdem unser MongoDB-Server betriebsbereit ist, können wir eine Verbindung zu ihm herstellen (mithilfe des entsprechenden Treibers) und CRUD-Operationen ausführen. Für diesen Artikel erstellen wir eine einfache Benutzerdatenbank, in der die Namen und das Alter unserer Benutzer gespeichert werden.
Benutzer erstellen
Es gibt zwei Möglichkeiten, Benutzer in eine MongoDB-Datenbank einzufügen. Beide Methoden sind ziemlich ähnlich, aber die Methode, die Sie auswählen sollten, hängt von der Anzahl der Benutzer ab, die Sie in einer bestimmten Instanz erstellen möchten. Wenn Sie einen Benutzer erstellen möchten , sollten Sie die insertOne- Methode verwenden.
Wenn jedoch mehr als ein Benutzer gleichzeitig erstellt werden soll, ist die Methode insertMany die bessere Option.
Beispiel für eine MongoDB insertOne-Methode
// import mongodb and use destructuring to get the MongoClient function
const { MongoClient } = require("mongodb");
//the connection URL and the database that we intend to connect to
const connectionURL = 'mongodb://127.0.0.1:27017';
const databaseName = 'user-manager';
//using the connect function on the MongoClient to connect to the MongoDB server
MongoClient.connect(connectionURL, { useUnifiedTopology: true }, (error, client) =>{
//check if connection was established
if (error){
return console.log('Could not connect to database');
}
//access the user-manager database
const db = client.db(databaseName);
//insert one user into the database
db.collection('users').insertOne({
name: 'John Doe',
age: '28'
}, (error,result) =>{
if (error){
return console.log('Could not create user');
}
console.log(result.ops);
})
})
Bevor wir Benutzer erstellen können, muss eine Verbindung zum MongoDB-Server mithilfe des MongoDB-Treibers der von Ihnen verwendeten Sprache hergestellt werden. Der beliebteste Treiber, den wir in diesem Tutorial verwenden, ist der NodeJS-Treiber.
Mit der ersten Zeile unseres obigen Codes können wir die Destrukturierungsmethode verwenden, um die MongoClient-Funktion von unserem Server abzurufen.
Der MongoClient akzeptiert drei Argumente:
- Eine URL (wird verwendet, um eine Verbindung zum MongoDB-Server herzustellen)
- Optionen / Einstellungen (in diesem Fall wird die Variable "useUnifiedTopology" auf "true" gesetzt, um die Verwendung der neuen Server-Erkennungs- und Überwachungs-Engine zu vereinfachen.)
- Eine Rückruffunktion, die zwei Argumente akzeptiert (Fehler und Client)
Innerhalb der Rückruffunktion der MongoClient-Methode können wir endlich einen Benutzer in unsere Datenbank einfügen. Bevor wir jedoch an diesen Punkt gelangen, müssen wir Zugriff auf die Benutzer-Manager-Datenbank erhalten.
Eine der Schönheiten bei der Verwendung von MongoDB ist, dass keine explizite Datenbank erstellt werden muss. Sobald mit dem Argument "client" (wie im obigen Code dargestellt) ein Verweis auf eine bestimmte Datenbank generiert wurde, können Sie mit der Bearbeitung beginnen.
Der Verweis auf die von uns generierte Benutzer-Manager-Datenbank wird in der Variablen "db" gespeichert, mit der wir unseren ersten Benutzer in die Datenbank einfügen.
Mit der Referenz "db" können wir eine neue Sammlung erstellen, der wir den Namen "user" zuweisen.
Die insertOne- Methode akzeptiert zwei erforderliche Argumente. das Dokument (der Benutzer) und eine Rückruffunktion. Mit der Methode insertOne können wir einen Benutzer mit dem Namen Peter Davis im Alter von 32 Jahren in unsere Datenbank einfügen.
Die Rückruffunktion akzeptiert zwei Argumente (Fehler und Ergebnis). Die Ergebnisfunktion enthält eine ops-Methode, mit der wir den Benutzer anzeigen, den wir gerade in unserer Datenbank erstellt haben. Dies erzeugt die folgende Ausgabe in der Konsole, nachdem der obige Code ausgeführt wurde:
[ { name: 'Peter Davis', age: '32', _id: 60772f869475e84740003c45 } ]
Obwohl wir beim Erstellen eines Benutzers nur zwei Felder angegeben haben, können Sie der obigen Ausgabe entnehmen, dass ein drittes Feld generiert wurde. Dies ist eine weitere coole Sache bei MongoDB. Es generiert automatisch eine eindeutige ID für jedes Dokument, das es erstellt.
Lesen eines Benutzers in MongoDB
Die beiden Hauptmethoden zum Lesen von Dokumenten aus einer MongoDB sind: find und findOne . Die find- Methode wird verwendet, um mehrere Dokumente gleichzeitig zu lesen, und die findOne- Methode wird verwendet, um jeweils ein einzelnes Dokument zu lesen.
Beispiel für eine MongoDB findOne-Methode
// import mongodb and use destructuring to get the MongoClient method
const { MongoClient } = require("mongodb");
//the connection URL and the database that we intend to connect to
const connectionURL = 'mongodb://127.0.0.1:27017';
const databaseName = 'user-manager';
//using the connect function on the MongoClient to connect to the MongoDB server
MongoClient.connect(connectionURL, { useUnifiedTopology: true }, (error, client) =>{
//check if connection was established
if (error){
return console.log('Could not connect to database') ;
}
//create the user-manager database
const db = client.db(databaseName);
//finding one user into the database
db.collection('users').findOne({name: 'Peter Davis'}, (error, user) => {
if (error){
return console.log('Could not find user');
}
console.log(user);
})
});
Denken Sie daran, dass Sie immer eine Verbindung zum MongoDB-Server und der entsprechenden Datenbank herstellen müssen, bevor Sie CRUD-Vorgänge ausführen können (siehe Beispiel oben).
Die findOne- Methode akzeptiert zwei erforderliche Argumente. Das erste Argument enthält die Suchkriterien. Sie können nach einem Dokument suchen, indem Sie einen beliebigen Variablennamen verwenden, der für dieses Dokument eindeutig ist. In unserem obigen Beispiel verwenden wir den Namen "Peter Davis".
Das zweite Argument der findOne- Methode ist die Rückruffunktion, die zwei Argumente akzeptiert . Das erste ist ein Fehler, wenn das Dokument nicht gefunden werden kann, und das zweite ist das Dokument (das wir "Benutzer" genannt haben).
Wenn Sie den obigen Code ausführen, wird in der Konsole das folgende Ergebnis angezeigt:
{ _id: 60772f869475e84740003c45, name: 'Peter Davis', age: '32' }
Aktualisieren eines Benutzers in MongoDB
Es gibt zwei Methoden zum Aktualisieren von Dokumenten in MongoDB. Obwohl die Struktur für beide sehr ähnlich ist, wird updateOne verwendet, um jeweils ein Dokument zu aktualisieren, und updateMany wird verwendet, um viele Dokumente gleichzeitig zu aktualisieren.
Beispiel für eine MongoDB updateOne-Methode
//Update a user's age
db.collection('users').updateOne({ name: "Peter Davis"},
{
$set: {
age: '24'
}
})
Mit dem obigen Code können wir das Alter von Peter Davis auf 24 aktualisieren.
Löschen eines Benutzers in MongoDB
Zum Löschen eines Dokuments aus MongoDB stehen zwei Methoden zur Verfügung. Mit der deleteOne- Methode wird ein einzelnes Dokument gelöscht, und mit der deleteMany- Methode werden mehrere Dokumente gelöscht.
Beispiel für eine MongoDB deleteOne-Methode
//delete a document
db.collection('users').deleteOne({ name: 'Peter Davis'})
Die Löschoperation ist die einfachste CRUD-Operation, die in MongoDB ausgeführt werden kann. Wie Sie im obigen Beispiel sehen können (ohne den erforderlichen Verbindungscode und die Rückruffunktion), wird nur eine Codezeile benötigt.
Sie können jetzt CRUD-Operationen in MongoDB ausführen
Jetzt haben Sie Grundkenntnisse in MongoDB und wissen, was NoSQL bedeutet. Sie wissen auch, wofür das Akronym CRUD steht und warum diese Operationen wesentliche Eigenschaften jeder Datenbank sind.
In diesem Artikel finden Sie alle Tools, die zum Ausführen der vier grundlegenden CRUD-Operationen in MongoDB erforderlich sind. Nachdem Sie mit dem CRUD-Operations-Know-how ausgestattet sind, können Sie lernen, wie Sie Ihre Daten mit MongoDB am besten modellieren können.
Bildnachweis: Alexander Sosluev / WiKiMedia Commons