Node.js MongoDB Tutorial mit Beispielen

Fast alle modernen Webanwendungen verfügen im Backend über eine Art Datenspeichersystem. Nehmen wir beispielsweise den Fall einer Web-Shopping-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

  1. Verbindungspooling verwalten – Hier können Sie die Anzahl der MySQL Datenbankverbindungen, die von Node.js gepflegt und gespeichert werden sollen.
  2. 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.
  3. Es können Abfragen ausgeführt werden, um Daten aus den jeweiligen Datenbanken abzurufen und Daten abzurufen.
  4. 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 richtigen 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},
}
  1. 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

  1. 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.

Die richtigen MongoDB und Node.js

Code-Erklärung:

  1. 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.
  2. 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.
  1. Der nächste Schritt besteht darin, eine Verbindung zu unserer Datenbank herzustellen. Die Verbindungsfunktion nimmt unsere URL auf und bietet die Möglichkeit, eine Rückruffunktion anzugeben. Diese wird aufgerufen, wenn die Verbindung zur Datenbank geöffnet wird. So können wir feststellen, ob die Datenbankverbindung erfolgreich war oder nicht.
  2. In der Funktion schreiben wir die Zeichenfolge „Verbindung hergestellt“ an die Konsole, um anzuzeigen, dass eine erfolgreiche Verbindung hergestellt wurde.
  3. 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.

Die richtigen MongoDB und Node.js

  1. 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.

Die richtigen MongoDB und Node.js

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-Erklärung:

  1. 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.
  2. Wir durchlaufen nun unseren Cursor und führen für jedes Dokument im Cursor eine Funktion aus.
  3. 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 kann durch Angabe der Suchbedingung in der Funktion find() erfolgen. Angenommen, Sie möchten beispielsweise nur den Datensatz mit dem Mitarbeiternamen Guru99 abrufen, dann kann diese Anweisung 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:

Die richtigen MongoDB und Node.js

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.
  1. 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.

Die richtigen MongoDB und Node.js

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-Erklärung:

  1. Hier verwenden wir die Methode insertOne aus dem MongoDB Bibliothek, um ein Dokument in die Employee-Sammlung einzufügen.
  2. 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

  1. Verwenden Sie EmployeeDB
  2. 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.

  1. 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.

Die richtigen MongoDB und Node.js

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-Erklärung:

  1. Hier verwenden wir die Methode „updateOne“ von MongoDB Bibliothek, die zum Aktualisieren eines Dokuments in einer MongoDB-Sammlung verwendet wird.
  2. Wir geben die Suchkriterien an, welches Dokument aktualisiert werden muss. In unserem Fall möchten wir das Dokument finden, dessen EmployeeName „NewEmployee“ lautet.
  3. 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

  1. Verwenden Sie EmployeeDB
  2. 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.

  1. 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.

Die richtigen MongoDB und Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

Code-Erklärung:

  1. Hier verwenden wir die Methode „deleteOne“ aus dem MongoDB Bibliothek, die zum Löschen eines Dokuments in einer MongoDB-Sammlung verwendet wird.
  2. 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

  1. Verwenden Sie EmployeeDB
  2. 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 jetzt Express integrieren, um die Daten auf unserer Webseite anzuzeigen, wenn dies vom Benutzer angefordert wird. Wenn unsere Anwendung auf Node.js ausgeführt wird, muss möglicherweise nach der URL gesucht werden 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.

Erstellen Sie eine Node Express-App mit MongoDB

Code-Erklärung:

  1. Wir definieren unsere „Express“-Bibliothek, die in unserer Anwendung verwendet wird.
  2. Wir definieren unser „MongoDB'-Bibliothek, die in unserer Anwendung für die Verbindung zu unserer verwendet wird MongoDB Datenbank.
  3. Hier definieren wir die URL unserer Datenbank, zu der eine Verbindung hergestellt werden soll.
  4. 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.

Erstellen Sie eine Node Express-App mit MongoDB

Code-Erklärung:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Erstellen Sie eine Node Express-App mit MongoDB

Code-Erklärung:

  1. 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.
  2. Wir sorgen dafür, dass unsere gesamte Node.js-Anwendung Port 3000 überwacht.

Ausgang:

Erstellen Sie eine Node Express-App mit MongoDB

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.