MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

Node.js & MongoDB - So stellen Sie eine Verbindung zu Ihrer Datenbank her

Marc-David Militz
Experte
  • Artikel von Lauren Schaefer

    • englischer Originalartikel
      https://www.mongodb.com/blog/post/quick-start-nodejs-mongodb--how-to-get-connected-to-your-database
      Übersetzung mit freundlicher Genehmigung von MongoDB

      In dieser Kurzanleitung werde ich Sie durch die Grundlagen und ersten Schritte mit MongoDB mit Node.js führen. Beginnen wollen wir mit dem herstellen einer Verbindung, zu einer MongoDB-Datenbank, aus einem Node.js-Skript, dem abrufen eine Liste der Datenbanken und dem Ausgeben der Ergebnisse auf der Konsole. Bevor wir beginnen, müssen wir sicherstellen, dass wir die erforderlichen Vorbereitungen getroffen haben.

      • Installieren Sie Node.js

        • Stellen Sie zunächst sicher, dass Sie eine unterstützte Version von Node.js installiert haben (der MongoDB Node.js-Treiber erfordert Node 4.x oder höher, und für diese Beispiele haben wir Node.js 10.16.3 verwendet).

          • Installieren Sie den MongoDB Node.js-Treiber

            • Mit dem MongoDB Node.js-Treiber können Sie in Node.js-Anwendungen auf einfache Weise mit MongoDB-Datenbanken interagieren. Sie benötigen den Treiber, um eine Verbindung zu Ihrer Datenbank herzustellen und die in dieser Kurzanleitung beschriebenen Abfragen auszuführen.

              Wenn Sie den MongoDB Node.js-Treiber nicht installiert haben, können Sie ihn mit dem folgenden Befehl installieren.
              npm install mongodb


              Zum Zeitpunkt dieses Beitrags ist die Version 3.3.2 des Treibers aktuell. Wenn Sie "npm list mongodb" ausführen, wird die Versionsnummer des aktuell installierten Treibers angezeigt. Weitere Informationen zum Treiber und zur Installation finden Sie in der offiziellen Dokumentation.

              • Erstellen Sie einen kostenlosen MongoDB Atlas-Cluster und laden Sie die Beispieldaten

                • Als Nächstes benötigen Sie eine MongoDB-Datenbank. Ihre Datenbank wird in einem Cluster gespeichert. Als High Level Erklärung kann man sagen, ein Cluster ist eine Gruppe von Knoten, auf denen Kopien Ihrer Datenbank gespeichert werden.

                  Der einfachste Einstieg in MongoDB ist die Verwendung von Atlas, MongoDBs vollständig verwaltetem Database-as-a-Service. Gehen Sie zu Atlas und erstellen Sie einen neuen Cluster im "Free Tier". Laden Sie die Beispieldaten, sobald Ihre Instanz erstellt wurde.
                  https://docs.atlas.mongodb.com/sample-data/

                  Wenn Sie nicht wissen, wie Sie einen neuen Cluster erstellen und die Beispieldaten laden, können Sie dieses Video-Tutorial von MongoDB Developer Advocate Maxime Beugnet ansehen.
                  https://youtu.be/rPqRyYJmx2g

                  • Rufen Sie die Verbindungsinformationen Ihres Clusters ab

                    • Der letzte Schritt besteht darin, Ihren Cluster für die Verbindung vorzubereiten. Navigieren Sie in Atlas zu Ihrem Cluster und klicken Sie auf "CONNECT". Der Clusterverbindungs-Assistent wird angezeigt.

                      Als nächstes fordert Sie der Assistent auf, eine Verbindungsmethode auszuwählen. Wählen Sie "Connect Your Application". Wenn der Assistent Sie auffordert, Ihre Treiberversion auszuwählen, wählen Sie Node.js und 3.0 oder höher aus. Kopieren Sie die angegebene Verbindungszeichenfolge.

                      Weitere Informationen zum Zugriff auf den Verbindungsassistenten und zum Ausführen der oben beschriebenen Schritte finden Sie in der offiziellen Dokumentation.
                      https://docs.atlas.mongodb.com/connect-to-cluster/

                      • Stellen Sie von einer Node.js-Anwendung aus, eine Verbindung zu Ihrer Datenbank her

                        • Jetzt, da alles eingerichtet ist, ist es Zeit zu programmieren! Schreiben wir ein Node.js-Skript, das eine Verbindung zu Ihrer Datenbank herstellt und die Datenbanken in Ihrem Cluster auflistet.

                          • MongoClient importieren

                            • Das MongoDB-Modul exportiert "MongoClient". Mit diesem Modul stellen wir eine Verbindung zu einer MongoDB-Datenbank her. Wir können eine Instanz von MongoClient verwenden, um eine Verbindung zu einem Cluster herzustellen, auf die Datenbank in diesem Cluster zuzugreifen und die Verbindung zu diesem Cluster zu schließen.
                              const {MongoClient} = require('mongodb');


                              • Erstellen der Hauptfunktion

                                • Erstellen wir eine asynchrone Funktion namens "main()", in der wir eine Verbindung zu unserem MongoDB-Cluster herstellen, Funktionen aufrufen die unsere Datenbank abfragen, und die Verbindung zu unserem Cluster wieder trennen.

                                  Als erstes müssen wir innerhalb von "main()" eine Konstante für unseren Verbindungs-URI erstellen. Der Verbindungs-URI ist die Verbindungszeichenfolge, die Sie im vorherigen Abschnitt in Atlas kopiert haben. Vergessen Sie beim Einfügen der Verbindungszeichenfolge nicht, <Benutzername> und <Kennwort> als Anmeldeinformationen für den im vorherigen Abschnitt erstellten Benutzer zu aktualisieren. Hinweis: Der Benutzername und das Kennwort, die Sie in der Verbindungszeichenfolge angeben, stimmen NICHT mit Ihren Atlas-Anmeldeinformationen überein.
                                  /**
                                  * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster.
                                  * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details
                                  */
                                  const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority";

                                  Nachdem wir unseren URI haben, können wir eine Instanz von MongoClient erstellen.
                                  const client = new MongoClient(uri);


                                  Hinweis: Wenn Sie diesen Code ausführen, werden möglicherweise DeprecationWarnings im Zusammenhang mit dem URL-String-Parser und der Server Discover and Monitoring-Engine angezeigt. Wenn diese Warnungen angezeigt werden, können Sie sie entfernen, indem Sie Optionen an MongoClient übergeben. Sie können MongoClient beispielsweise instanziieren, indem Sie den neuen MongoClient aufrufen "(uri, {useNewUrlParser: true, useUnifiedTopology: true})". Weitere Informationen zu diesen Optionen finden Sie in der Dokumentation zur Node.js MongoDB-Treiber-API.
                                  https://mongodb.github.io/node-mongodb-native/3.3/api/MongoClient.html

                                  Jetzt können Sie mit MongoClient eine Verbindung zu unserem Cluster herstellen. "client.connect()" gibt ein Versprechen zurück. Wir verwenden das Schlüsselwort "await", wenn wir "client.connect()" aufrufen, um anzugeben, dass die weitere Ausführung blockiert werden soll, bis dieser Vorgang abgeschlossen ist.
                                  await client.connect();


                                  Jetzt können wir mit unserer Datenbank interagieren. Erstellen wir eine Funktion, die die Namen der Datenbanken in diesem Cluster ausgibt. Es ist oft nützlich, diese Logik in gut benannten Funktionen zu enthalten, um die Lesbarkeit Ihrer Codebasis zu verbessern. In dieser Reihe werden wir neue Funktionen erstellen, die denen ähneln, die wir hier erstellen, während wir lernen, wie verschiedene Arten von Abfragen geschrieben werden. Rufen wir zunächst eine Funktion namens "listDatabases()" auf.
                                  await listDatabases(client);


                                  Lassen Sie uns unsere Aufrufe von Funktionen, die mit der Datenbank interagieren, in einer try / catch-Anweisung zusammenfassen, damit wir alle unerwarteten Fehler behandeln.
                                  try {
                                  await client.connect();

                                  await listDatabases(client);

                                  } catch (e) {
                                  console.error(e);
                                  }


                                  Wir möchten sichergehen, dass die Verbindung zu unserem Cluster getrennt wird, und beenden unseren Versuch mit einer "finally"-Anweisung.
                                  finally {
                                  await client.close();
                                  }


                                  Sobald wir unsere "main()"-Funktion geschrieben haben, müssen wir sie aufrufen. Lassen Sie uns die Fehler an die Konsole senden.
                                  main().catch(console.err);


                                  Wenn wir alles zusammenfassen, sehen unsere "main()"-Funktion und unser Aufruf ungefähr so aus.
                                  async function main(){
                                  /**
                                  * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster.
                                  * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details
                                  */
                                  const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority";


                                  const client = new MongoClient(uri);

                                  try {
                                  // Connect to the MongoDB cluster
                                  await client.connect();

                                  // Make the appropriate DB calls
                                  await listDatabases(client);

                                  } catch (e) {
                                  console.error(e);
                                  } finally {
                                  await client.close();
                                  }
                                  }

                                  main().catch(console.err);


                                  • Die Datenbanken im Cluster auflisten

                                    • Im vorherigen Abschnitt haben wir auf die Funktion "listDatabases()" verwiesen. Lasst uns das nun umsetzen! Diese Funktion ruft eine Liste der Datenbanken in unserem Cluster ab und druckt die Ergebnisse in der Konsole.
                                      async function listDatabases(client){
                                      databases = await client.db().admin().listDatabases();

                                      console.log("Databases:");
                                      databases.databases.forEach(db => console.log(` - ${db.name}`));
                                      };


                                      • Speichern der Datei

                                        • Sie haben viel Code implementiert. Speichern Sie Ihre Änderungen und benennen Sie Ihre Datei wie connection.js. Um eine Kopie der gesamten Datei zu sehen, besuchen Sie das GitHub-Repo von nodejs-quickstart.
                                          https://github.com/mongodb-developer/nodejs-quickstart/blob/master/connection.js

                                          • Ausführen des Node.js-Skripts

                                            • Jetzt können Sie Ihren Code testen! Führen Sie Ihr Skript aus, indem Sie einen Befehl wie den folgenden in Ihrem Terminal ausführen:
                                              node connection.js


                                              Sie sehen die Ausgabe wie folgt:
                                              Databases:
                                              - sample_airbnb
                                              - sample_geospatial
                                              - sample_mflix
                                              - sample_supplies
                                              - sample_training
                                              - sample_weatherdata
                                              - admin
                                              - local


                                              • Wie geht es weiter?

                                                • Heute konnten Sie über ein Node.js-Skript eine Verbindung zu einer MongoDB-Datenbank herstellen, eine Liste der Datenbanken in Ihrem Cluster abrufen und die Ergebnisse in Ihrer Konsole anzeigen. In zukünftigen Beiträgen dieser Reihe werden wir uns mit den einzelnen CRUD-Vorgängen (Erstellen, Lesen, Aktualisieren und Löschen) sowie mit Themen wie Änderungsdatenströmen, Transaktionen und der Aggregationspipeline befassen, damit Sie über die Tools verfügen, die Sie benötigen müssen erfolgreich mit Daten in Ihren Datenbanken interagieren.
                                                  In der Zwischenzeit können sie sich mit folgenden Ressourcen beschäftigen:
                                                  MongoDB Node.js Treiber
                                                  https://mongodb.github.io/node-mongodb-native/index.html
                                                  Offizielle MongoDB-Dokumentation zum MongoDB Node.js-Treiber
                                                  https://docs.mongodb.com/ecosystem/drivers/node/

Neueste Mitgliederaktivitäten

Tags

Diesen Community Beitrag weiterempfehlen