Node.js MongoDB Tutorial mit Beispielen
Nahezu alle modernen Webanwendungen verfรผgen รผber ein Datenspeichersystem im Backend. Nehmen wir beispielsweise einen Onlineshop.ping Bei der Anwendung wรผrden Daten wie der Preis eines Artikels in der Datenbank gespeichert.
Das Node-JS-Framework kann sowohl mit relationalen Datenbanken (z. B Oracle und MS SQL Server) und nicht-relationale Datenbanken (z. B MongoDB). In diesem Tutorial erfahren Sie, wie wir Datenbanken in Node-JS-Anwendungen verwenden kรถnnen.
Node.js und NoSQL-Datenbanken
Im Laufe der Jahre wurden NoSQL-Datenbanken wie z MongoDB und fรผr MySQL sind als Datenbanken zum Speichern von Daten sehr beliebt geworden. Die Fรคhigkeit dieser Datenbanken, jede Art von Inhalt und insbesondere in jedem beliebigen Format zu speichern, macht diese Datenbanken so berรผhmt.
Node.js kann mit beiden arbeiten MySQL und MongoDB als Datenbanken. Um eine dieser Datenbanken nutzen zu kรถnnen, mรผssen Sie die erforderlichen Module mithilfe des Node-Paketmanagers herunterladen und verwenden.
Fรผr MySQL, das benรถtigte Modul heiรt โmysqlโ und fรผr die Verwendung MongoDB Das erforderliche Modul, das installiert werden muss, ist โMongooseโ.
Mit diesen Modulen kรถnnen Sie die folgenden Operationen in Node.js durchfรผhren
- Verbindungspooling verwalten โ Hier kรถnnen Sie die Anzahl der MySQL Datenbankverbindungen, die von Node.js gepflegt und gespeichert werden sollen.
- Erstellen und schlieรen Sie eine Verbindung zu einer Datenbank. In beiden Fรคllen kรถnnen Sie eine Rรผckruffunktion bereitstellen, die immer dann aufgerufen werden kann, wenn die Verbindungsmethoden โerstellenโ und โschlieรenโ ausgefรผhrt werden.
- Es kรถnnen Abfragen ausgefรผhrt werden, um Daten aus den jeweiligen Datenbanken abzurufen und Daten abzurufen.
- Mit diesen Modulen kรถnnen auch Datenmanipulationen wie das Einfรผgen, Lรถschen und Aktualisieren von Daten durchgefรผhrt werden.
Bei den restlichen Themen werden wir schauen, wie wir damit arbeiten kรถnnen MongoDB Datenbanken innerhalb Node.js.
Die Verwendung von MongoDB und Node.js
Wie im vorherigen Thema besprochen, MongoDB ist neben Node.js eine der am hรคufigsten verwendeten Datenbanken.
In diesem Kapitel werden wir sehen
Wie wir Verbindungen zu einem herstellen kรถnnen MongoDB Datenbank
Wie wir die normalen Operationen des Lesens von Daten aus einer Datenbank sowie das Einfรผgen, Lรถschen und Aktualisieren von Datensรคtzen in einer MongoDB Datenbank.
Fรผr den Zweck dieses Kapitels gehen wir davon aus, dass wir Folgendes haben MongoDB Daten vorhanden.
Datenbankname: EmployeeDB
Sammlungsname: Mitarbeiter
Documents
{
{Employeeid : 1, Employee Name : Guru99},
{Employeeid : 2, Employee Name : Joe},
{Employeeid : 3, Employee Name : Martin},
}
- Installieren der NPM-Module
Sie benรถtigen einen Treiber, um aus einer Node-Anwendung auf Mongo zuzugreifen. Es sind jedoch eine Reihe von Mongo-Treibern verfรผgbar MongoDB gehรถrt zu den beliebtesten. Um die zu installieren MongoDB Modul, fรผhren Sie den folgenden Befehl aus
npm installieren mongodb
- Erstellen und Schlieรen einer Verbindung zu a MongoDB Datenbank. Der folgende Codeausschnitt zeigt, wie Sie eine Verbindung zu a erstellen und schlieรen MongoDB Datenbank.
Code Erlรคuterung:
- Der erste Schritt besteht darin, das Mungo-Modul einzubinden, was รผber die Funktion require erfolgt. Sobald dieses Modul vorhanden ist, kรถnnen wir die in diesem Modul verfรผgbaren notwendigen Funktionen nutzen, um Verbindungen zur Datenbank herzustellen.
- Als nรคchstes geben wir unsere Verbindungszeichenfolge zur Datenbank an. In der Verbindungszeichenfolge werden drei Schlรผsselwerte รผbergeben.
- Das erste ist โmongodbโ, das angibt, dass wir eine Verbindung zu einer MongoDB-Datenbank herstellen.
- Das nรคchste ist โlocalhostโ, was bedeutet, dass wir eine Verbindung zu einer Datenbank auf dem lokalen Computer herstellen.
- Das nรคchste ist โEmployeeDBโ, der Name der in unserem definierten Datenbank MongoDB Datenbank.
- Der nรคchste Schritt besteht darin, die Verbindung zu unserer Datenbank herzustellen. Die Verbindungsfunktion benรถtigt unsere URL und bietet die Mรถglichkeit, eine Callback-Funktion anzugeben. Diese wird aufgerufen, sobald die Verbindung zur Datenbank hergestellt wird. Dadurch lรคsst sich feststellen, ob die Datenbankverbindung erfolgreich war oder nicht.
- In der Funktion schreiben wir die Zeichenfolge โVerbindung hergestelltโ an die Konsole, um anzuzeigen, dass eine erfolgreiche Verbindung hergestellt wurde.
- Abschlieรend schlieรen wir die Verbindung mit der db.close-Anweisung.
Wenn der obige Code ordnungsgemรคร ausgefรผhrt wird, wird die Zeichenfolge โConnectedโ wie unten gezeigt in die Konsole geschrieben.
- Abfrage von Daten in a MongoDB Datenbank - Verwendung der MongoDB Treiber kรถnnen wir auch Daten von dem abrufen MongoDB Datenbank. Im folgenden Abschnitt wird gezeigt, wie wir den Treiber verwenden kรถnnen, um alle Dokumente aus unserer Mitarbeitersammlung abzurufen in unserer EmployeeDB-Datenbank. Dies ist die Sammlung in unserem MongoDB Datenbank, die alle mitarbeiterbezogenen Dokumente enthรคlt. Jedes Dokument verfรผgt รผber eine Objekt-ID, einen Mitarbeiternamen und eine Mitarbeiter-ID, um die Werte des Dokuments zu definieren.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
Code Erlรคuterung:
- Im ersten Schritt erstellen wir einen Cursor (Ein Cursor ist ein Zeiger, der verwendet wird, um auf die verschiedenen Datensรคtze zu zeigen, die aus einer Datenbank abgerufen werden. Der Cursor wird dann verwendet, um durch die verschiedenen Datensรคtze in der Datenbank zu iterieren. Hier definieren wir einen Variablennamen namens Cursor, der verwendet wird, um den Zeiger auf die Datensรคtze zu speichern, die aus der Datenbank abgerufen werden.), der auf die Datensรคtze zeigt, die aus der MongoDb-Sammlung abgerufen werden. Wir haben auch die Mรถglichkeit, die Sammlung โMitarbeiterโ anzugeben, aus der die Datensรคtze abgerufen werden sollen. Die Funktion find() wird verwendet, um anzugeben, dass wir alle Dokumente aus der MongoDB Sammlung.
- Wir durchlaufen nun unseren Cursor und fรผhren fรผr jedes Dokument im Cursor eine Funktion aus.
- Unsere Funktion besteht einfach darin, den Inhalt jedes Dokuments auf der Konsole auszugeben.
Hinweis: - Es ist auch mรถglich, einen bestimmten Datensatz aus einer Datenbank abzurufen. Dies geschieht durch Angabe der Suchbedingung in der Funktion `find()`. Angenommen, Sie mรถchten beispielsweise nur den Datensatz abrufen, der den Mitarbeiternamen enthรคlt. Guru99, dann kann diese Aussage wie folgt geschrieben werden
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Wenn der obige Code erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe in Ihrer Konsole angezeigt.
Ausgang:
Aus der Ausgabe,
- Sie kรถnnen deutlich sehen, dass alle Dokumente aus der Sammlung abgerufen werden. Dies ist mรถglich, indem Sie die find()-Methode der mongoDB-Verbindung (db) verwenden und mit dem Cursor durch alle Dokumente iterieren.
- Einfรผgen von Dokumenten in eine Sammlung โ Dokumente kรถnnen mit der von bereitgestellten insertOne-Methode in eine Sammlung eingefรผgt werden MongoDB Bibliothek. Der folgende Codeausschnitt zeigt, wie wir ein Dokument in eine MongoDB-Sammlung einfรผgen kรถnnen.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').insertOne({
Employeeid: 4,
EmployeeName: "NewEmployee"
});
});
Code Erlรคuterung:
- Hier verwenden wir die Methode insertOne aus dem MongoDB Bibliothek, um ein Dokument in die Employee-Sammlung einzufรผgen.
- Wir geben die Dokumentdetails an, die in die Mitarbeitersammlung eingefรผgt werden mรผssen.
Wenn Sie jetzt den Inhalt Ihres รผberprรผfen MongoDB In der Employee-Sammlung finden Sie den Datensatz mit der Employeeid von 4 und dem EmployeeName von โNewEmployeeโ.
Hinweis: Die Konsole zeigt keine Ausgabe an, da der Datensatz in die Datenbank eingefรผgt wird und hier keine Ausgabe angezeigt werden kann.
Um zu รผberprรผfen, ob die Daten richtig in die Datenbank eingefรผgt wurden, mรผssen Sie die folgenden Befehle ausfรผhren in MongoDB
- Verwenden Sie EmployeeDB
- db.Employee.find({Employeeid :4 })
Die erste Anweisung stellt sicher, dass Sie mit der EmployeeDb-Datenbank verbunden sind. Die zweite Anweisung sucht nach dem Datensatz mit der Mitarbeiter-ID 4.
- Dokumente in einer Sammlung aktualisieren โ Dokumente kรถnnen in einer Sammlung mit der von bereitgestellten updateOne-Methode aktualisiert werden MongoDB Bibliothek. Der folgende Codeausschnitt zeigt, wie ein Dokument in einer MongoDB-Sammlung aktualisiert wird.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').updateOne({
"EmployeeName": "NewEmployee"
}, {
$set: {
"EmployeeName": "Mohan"
}
});
});
Code Erlรคuterung:
- Hier verwenden wir die Methode โupdateOneโ von MongoDB Bibliothek, die zum Aktualisieren eines Dokuments in einer MongoDB-Sammlung verwendet wird.
- Wir geben die Suchkriterien an, welches Dokument aktualisiert werden muss. In unserem Fall mรถchten wir das Dokument finden, dessen EmployeeName โNewEmployeeโ lautet.
- Anschlieรend wollen wir den Wert des EmployeeName des Dokuments von โNewEmployeeโ auf โMohanโ setzen.
Wenn Sie jetzt den Inhalt Ihres รผberprรผfen MongoDB In der Employee-Sammlung finden Sie den Datensatz mit der Employeeid von 4 und dem EmployeeName von โMohanโ, der in der Employee-Sammlung aktualisiert wurde.
Um zu รผberprรผfen, ob die Daten in der Datenbank richtig aktualisiert wurden, mรผssen Sie die folgenden Befehle ausfรผhren in MongoDB
- Verwenden Sie EmployeeDB
- db.Employee.find({Employeeid :4 })
Die erste Anweisung stellt sicher, dass Sie mit der EmployeeDb-Datenbank verbunden sind. Die zweite Anweisung sucht nach dem Datensatz mit der Mitarbeiter-ID 4.
- Dokumente in einer Sammlung lรถschen โ Dokumente kรถnnen in einer Sammlung mit der von bereitgestellten Methode โdeleteOneโ gelรถscht werden MongoDB Bibliothek. Der folgende Codeausschnitt zeigt, wie ein Dokument in einer MongoDB-Sammlung gelรถscht wird.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').deleteOne(
{
"EmployeeName": "Mohan"
}
);
});
Code Erlรคuterung:
- Hier verwenden wir die Methode โdeleteOneโ aus dem MongoDB Bibliothek, die zum Lรถschen eines Dokuments in einer MongoDB-Sammlung verwendet wird.
- Wir geben die Suchkriterien an, welches Dokument gelรถscht werden soll. In unserem Fall mรถchten wir das Dokument mit dem Mitarbeiternamen โMohanโ finden und dieses Dokument lรถschen.
Wenn Sie jetzt den Inhalt Ihres รผberprรผfen MongoDB In der Datenbank โEmployeeโ finden Sie den Datensatz mit der Mitarbeiter-ID 4 und dem Mitarbeiternamen โMohanโ, der aus der Mitarbeitersammlung gelรถscht wurde.
Um zu รผberprรผfen, ob die Daten in der Datenbank richtig aktualisiert wurden, mรผssen Sie die folgenden Befehle ausfรผhren in MongoDB
- Verwenden Sie EmployeeDB
- db.Employee.find()
Die erste Anweisung stellt sicher, dass Sie mit der EmployeeDb-Datenbank verbunden sind. Die zweite Anweisung durchsucht alle Datensรคtze in der Mitarbeitersammlung und zeigt sie an. Hier kรถnnen Sie sehen, ob der Datensatz gelรถscht wurde oder nicht.
So erstellen Sie eine Node-Express-App mit MongoDB um Inhalte zu speichern und bereitzustellen
Erstellen einer Anwendung mit einer Kombination aus Express und MongoDB ist heutzutage durchaus รผblich.
Bei der Arbeit mit JavaSkript Bei webbasierten Anwendungen wird man hier normalerweise vom Begriff MEAN-Stack sprechen.
- Der Begriff MEAN-Stack bezeichnet eine Sammlung von JavaSkriptbasierte Technologien zur Entwicklung von Webanwendungen.
- MEAN ist ein Akronym fรผr MongoDB, ExpressJS, AngularJS, und Node.js.
Daher ist es immer gut zu verstehen, wie Node.js und MongoDB arbeiten zusammen, um Anwendungen bereitzustellen, die mit Backend-Datenbanken interagieren.
Schauen wir uns ein einfaches Beispiel an, wie wir โExpressโ und โMongoDB" zusammen. In unserem Beispiel wird die gleiche Employee-Sammlung im verwendet MongoDB EmployeeDB-Datenbank.
Wir werden nun Express einbinden, um die Daten auf unserer Webseite anzuzeigen, sobald sie vom Benutzer angefordert werden. Wenn unsere Anwendung auf Node.js lรคuft, muss der Benutzer mรถglicherweise die Webseite aufrufen. URL http://localhost:3000/Employeeid.
Wenn die Seite gestartet wird, werden alle Mitarbeiter-IDs in der Mitarbeitersammlung angezeigt. Sehen wir uns also den Codeausschnitt in Abschnitten an, der uns dies ermรถglicht.
Schritt 1) Definieren Sie alle Bibliotheken, die in unserer Anwendung verwendet werden mรผssen, was in unserem Fall beides ist MongoDB und Express-Bibliothek.
Code Erlรคuterung:
- Wir definieren unsere โExpressโ-Bibliothek, die in unserer Anwendung verwendet wird.
- Wir definieren unser โMongoDB'-Bibliothek, die in unserer Anwendung fรผr die Verbindung zu unserer verwendet wird MongoDB Datenbank.
- Hier definieren wir die URL um eine Verbindung zu unserer Datenbank herzustellen.
- Schlieรlich definieren wir eine Zeichenfolge, in der unsere Sammlung von Mitarbeiter-IDs gespeichert wird, die spรคter im Browser angezeigt werden mรผssen.
Schritt 2) In diesem Schritt werden wir nun alle Datensรคtze in unserer โMitarbeiterโ-Sammlung abrufen und entsprechend damit arbeiten.
Code Erlรคuterung:
- Wir erstellen eine Route zu unserer Anwendung mit dem Namen โEmployeeidโ. Also wann immer jemand nachschaut http://localhost:3000/Employeeid unserer Anwendung wird das fรผr diese Route definierte Code-Snippet ausgefรผhrt.
- Hier erhalten wir alle Datensรคtze in unserer โEmployeeโ-Sammlung รผber den Befehl db.collection('Employee').find(). Anschlieรend weisen wir diese Sammlung einer Variablen namens โcursorโ zu. Mit dieser Cursorvariablen kรถnnen wir alle Datensรคtze der Sammlung durchsuchen.
- Wir verwenden jetzt die Funktion โcursor.each()โ, um durch alle Datensรคtze unserer Sammlung zu navigieren. Fรผr jeden Datensatz definieren wir ein Code-Snippet, das beschreibt, was beim Zugriff auf jeden Datensatz zu tun ist.
- Schlieรlich sehen wir, dass wir den Mitarbeiter รผber den Befehl โitem.Employeeidโ abrufen, wenn der zurรผckgegebene Datensatz nicht null ist. Der restliche Code dient lediglich dazu, einen richtigen HTML-Code zu erstellen, der es ermรถglicht, dass unsere Ergebnisse im Browser richtig angezeigt werden.
Schritt 3) In diesem Schritt senden wir unsere Ausgabe an die Webseite und sorgen dafรผr, dass unsere Anwendung einen bestimmten Port รผberwacht.
Code Erlรคuterung:
- Hier senden wir den gesamten Inhalt, der im vorherigen Schritt erstellt wurde, an unsere Webseite. Der Parameter โresโ ermรถglicht es uns, als Antwort Inhalte an unsere Webseite zu senden.
- Wir sorgen dafรผr, dass unsere gesamte Node.js-Anwendung Port 3000 รผberwacht.
Ausgang:
Aus der Ausgabe,
- Es zeigt deutlich, dass alle Mitarbeiter-IDs in der Mitarbeitersammlung abgerufen wurden. Das liegt daran, dass wir das verwenden MongoDB Treiber, um eine Verbindung zur Datenbank herzustellen und alle Mitarbeiterdatensรคtze abzurufen, und anschlieรend โExpressโ zum Anzeigen der Datensรคtze verwendet.
Hier ist der Code als Referenz
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res)
{
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
//noinspection JSDeprecatedSymbols
cursor.each(function(err, item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
});
res.send(str);
db.close();
});
});
var server = app.listen(3000, function() {});
Hinweis: Cursor.each ist je nach Ihrer Version mรถglicherweise veraltet MongoDB Treiber. Sie kรถnnen //noinspection JSDeprecatedSymbols vor Cursor.each anhรคngen, um das Problem zu umgehen. Alternativ kรถnnen Sie forEach verwenden. Unten finden Sie den Beispielcode fรผr die Verwendung von forEach
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res) {
MongoClient.connect(url, function(err, db) {
var collection = db.collection('Employee');
var cursor = collection.find({});
str = "";
cursor.forEach(function(item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
}, function(err) {
res.send(err);
db.close();
}
);
});
});
var server = app.listen(8080, function() {});
Zusammenfassung
- Node.js wird in Verbindung mit verwendet NoSQL Datenbanken zum Erstellen vieler moderner Webanwendungen. Einige der am hรคufigsten verwendeten Datenbanken sind MySQL und MongoDB.
- Eines der am hรคufigsten verwendeten Module zum Arbeiten mit MongoDB Datenbanken ist ein Modul namens 'MongoDB.' Dieses Modul wird รผber den Node-Paketmanager installiert.
- Mit der MongoDB Modul ist es mรถglich, nach Datensรคtzen in einer Sammlung zu suchen und die normalen Aktualisierungs-, Lรถsch- und Einfรผgevorgรคnge durchzufรผhren.
- Schlieรlich besteht eine der modernen Praktiken darin, das Express-Framework zusammen mit zu verwenden MongoDB um moderne Anwendungen bereitzustellen. Das Express-Framework kann die von zurรผckgegebenen Daten nutzen MongoDB Treiber und zeigt dem Benutzer die Daten entsprechend auf der Webseite an.











