One place for hosting & domains

      MongoDB

      Making a Node + MongoDB App on DigitalOcean


      How to Join

      This Tech Talk is free and open to everyone. Register below to get a link to join the live stream or receive the video recording after it airs.

      DateTimeRSVP
      July 14, 202111:00 a.m.–12:00 p.m. ET / 3:00–4:00 p.m. GMT

      About the Talk

      Node.js and MongoDB are a perfect pair when developing applications. The ability to switch between JavaScript objects and JSON makes development seamless. Harness the power of this combination by building a Node app from scratch using Express, and connecting to the database using mongoose.

      What You’ll Learn

      • How to build a Node app
      • How to create a MongoDB database
      • How to connect Node and MongoDB

      This Talk Is Designed For

      • JavaScript developers that want to store data
      • Developers that want to see how Node apps persist data

      Prerequisites

      • JavaScript knowledge
      • Node knowledge
      • Database knowledge

      Resources

      Express: a fast, unopinionated, minimalist web framework for Node.js
      mongoose: an elegant MongoDB object modeling for Node.js
      MongoDB Node.JS driver: official MongoDB Node.js driver that allows Node.js applications to connect to MongoDB and work with data

      To join the live Tech Talk, register here.



      Source link

      So installieren Sie MongoDB aus den Standard-APT-Repositorys unter Ubuntu 20.04


      Einführung

      MongoDB ist eine kostenlose und Open-Source-NoSQL-Dokumentendatenbank, die häufig in modernen Webanwendungen verwendet wird.

      In diesem Tutorial installieren Sie MongoDB, verwalten den Dienst und aktivieren optional den Fernzugriff.

      Hinweis: Zum jetzigen Zeitpunkt wird in diesem Tutorial die Version 3.6 von MongoDB installiert. Dies ist die Version, die in den Standard-Ubuntu-Repositorys verfügbar ist. Wir empfehlen jedoch generell, stattdessen die neueste Version von MongoDB zu installieren – Version 4.4 zum jetzigen Zeitpunkt. Wenn Sie die neueste Version von MongoDB installieren möchten, empfehlen wir Ihnen, diese Anleitung zur Installation von MongoDB unter Ubuntu 20.04 aus dem Quellcode zu befolgen.

      Voraussetzungen

      Um dieser Anleitung zu folgen, benötigen Sie:

      • Ein Ubuntu 20.04-Server, der gemäß des Leitfadens zur Ersteinrichtung des Servers für Ubuntu 20.04 eingerichtet wurde, einschließlich eines non-root users, der über sudo-Berechtigungen verfügt, und einer mit UFW konfigurierten Firewall.

      Schritt 1 — Installieren von MongoDB

      Zu den offiziellen Paket-Repositorys von Ubuntu gehört MongoDB, was bedeutet, dass wir die erforderlichen Pakete mit apt installieren können. Wie in der Einführung erwähnt, ist die aus den Standard-Repositorys verfügbare Version nicht die neueste. Befolgen Sie stattdessen dieses Tutorial, um die neueste Version von Mongo zu installieren.

      Aktualisieren Sie zunächst die Paketliste, um die neueste Version der Repository-Listen zu erhalten:

      Installieren Sie nun die MongoDB selbst:

      Dieser Befehl fordert Sie auf, zu bestätigen, dass Sie das Paket mongodb und seine Abhängigkeiten installieren möchten. Drücken Sie dazu Y und dann ENTER.

      Der Datenbankserver wird nach der Installation automatisch gestartet.

      Überprüfen wir als Nächstes, ob der Server ausgeführt wird und korrekt funktioniert.

      Schritt 2 — Überprüfen des Dienstes und der Datenbank

      Der Installationsprozess hat MongoDB automatisch gestartet. Überprüfen Sie jedoch, ob der Dienst gestartet wurde und die Datenbank funktioniert.

      Überprüfen Sie als erstes den Status des Dienstes:

      • sudo systemctl status mongodb

      Sie sehen diese Ausgabe:

      Output

      ● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

      Laut dieser Ausgabe wird der MongoDB-Server ausgeführt.

      Wir können dies weiter überprüfen, indem wir tatsächlich eine Verbindung zum Datenbankserver herstellen und den folgenden Diagnosebefehl ausführen. Dadurch werden die aktuelle Datenbankversion, die Serveradresse und der Port sowie die Ausgabe des Statusbefehls ausgegeben:

      • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

      Output

      MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

      Ein Wert von 1 für das ok-Feld in der Antwort gibt an, dass der Server ordnungsgemäß funktioniert:

      Als Nächstes werden wir uns ansehen, wie Sie die Serverinstanz verwalten.

      Schritt 3 — Verwalten des MongoDB-Dienstes

      Der in Schritt 1 beschriebene Installationsprozess konfiguriert MongoDB als systemd-Dienst. Dies bedeutet, dass Sie ihn zusammen mit allen anderen Systemdiensten in Ubuntu mit Standard-systemctl-Befehlen verwalten können.

      Um den Status des Dienstes zu überprüfen, geben Sie Folgendes ein:

      • sudo systemctl status mongodb

      Sie können den Server jederzeit stoppen, indem Sie Folgendes eingeben:

      • sudo systemctl stop mongodb

      Um den Server zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

      • sudo systemctl start mongodb

      Sie können den Server auch mit dem folgenden Befehl neu starten:

      • sudo systemctl restart mongodb

      Standardmäßig ist MongoDB so konfiguriert, dass es automatisch mit dem Server gestartet wird. Falls Sie den automatischen Start deaktivieren möchten, geben Sie Folgendes ein:

      • sudo systemctl disable mongodb

      Sie können den automatischen Start jederzeit mit dem folgenden Befehl wieder aktivieren:

      • sudo systemctl enable mongodb

      Als nächstes passen wir die Firewall-Einstellungen für unsere MongoDB-Installation an.

      Schritt 4 — Anpassen der Firewall (optional)

      Angenommen, Sie haben die Anweisungen zum ersten Server-Setup-Tutorial befolgt, um die Firewall auf Ihrem Server zu aktivieren, ist der Zugriff auf den MongoDB-Server über das Internet nicht möglich.

      Wenn Sie MongoDB nur lokal mit Anwendungen verwenden möchten, die auf dem gleichen Server ausgeführt werden, ist dies die empfohlene und sichere Einstellung. Wenn Sie jedoch über das Internet eine Verbindung mit Ihrem MongoDB-Server herstellen möchten, müssen Sie die eingehenden Verbindungen durch Hinzufügen einer UFW-Regel zulassen.

      Um von überall aus auf MongoDB über den Standardport 27017 zuzugreifen, können Sie sudo ufw allow 27017 ausführen. Wenn Sie jedoch bei einer Standardinstallation den Internetzugang zum MongoDB-Server aktivieren, kann jeder uneingeschränkt auf den Datenbankserver und seine Daten zugreifen.

      In den meisten Fällen sollte nur von bestimmten vertrauenswürdigen Orten auf MongoDB zugegriffen werden, wie z. B. von einem anderen Server, der eine Anwendung hostet. Um nur einem anderen vertrauenswürdigen Server den Zugriff auf den Standardport von MongoDB zu ermöglichen, können Sie die IP-Adresse des Remote-Servers im Befehl ufw angeben. Auf diese Weise darf nur dieser Computer explizit eine Verbindung herstellen:

      • sudo ufw allow from trusted_server_ip/32 to any port 27017

      Sie können die Änderung der Firewall-Einstellungen mit ufw überprüfen:

      Sie sollten in der Ausgabe den Datenverkehr zu Port 27017 erlauben. Beachten Sie, dass, wenn Sie beschlossen haben, nur eine bestimmte IP-Adresse für die Verbindung zum MongoDB-Server zuzulassen, die IP-Adresse des zulässigen Speicherorts anstelle von Anywhere in der Ausgabe dieses Befehls aufgeführt wird:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

      Weitere erweiterte Firewall-Einstellungen zum Einschränken des Zugriffs auf Dienste finden Sie in UFW-Grundlagen: gebräuchliche Firewall-Regeln und -Befehle.

      Obwohl der Port geöffnet ist, überwacht MongoDB immer noch nur die lokale Adresse 127.0.0.1. Fügen Sie der Datei mongodb.conf die öffentlich routbare IP-Adresse Ihres Servers hinzu, um Remoteverbindungen zuzulassen.

      Öffnen Sie die MongoDB-Konfigurationsdatei in Ihrem bevorzugten Editor. Dieser Beispielbefehl verwendet nano:

      • sudo nano /etc/mongodb.conf

      Fügen Sie die IP-Adresse Ihres MongoDB-Servers zum bindIP-Wert hinzu. Stellen Sie sicher, dass Sie ein Komma zwischen der vorhandenen IP-Adresse und der hinzugefügten Adresse einrichten:

      /etc/mongodb.conf

      ...
      logappend=true
      
      bind_ip = 127.0.0.1,your_server_ip
      #port = 27017
      
      ...
      

      Speichern Sie die Datei und beenden Sie den Editor. Wenn Sie nano zum Bearbeiten der Datei verwendet haben, drücken Sie dazu STRG + X, Y und dann ENTER.

      Starten Sie dann den MongoDB-Dienst neu:

      • sudo systemctl restart mongodb

      MongoDB wartet jetzt auf Remoteverbindungen, aber jeder kann darauf zugreifen. Befolgen Sie die Anweisungen zum Sichern von MongoDB unter Ubuntu 20.04, um einen Administrator hinzuzufügen und die Dinge weiter zu sperren.

      Zusammenfassung

      Weitere Anleitungen zum Konfigurieren und Verwenden von MongoDB finden Sie in diesen Community-Artikeln von DigitalOcean. Die offizielle MongoDB-Dokumentation ist auch eine großartige Ressource für die Möglichkeiten, die MongoDB bietet.



      Source link

      Cómo hacer una copia de seguridad, restablecer y migrar una base de datos de MongoDB en Ubuntu 20.04


      El autor seleccionó COVID-19 Relief Fund para que reciba una donación como parte del programa Write for DOnations.

      Introducción

      MongoDB es uno de los motores de base de datos más populares de NoSQL. Es famoso por ser escalable, sólido, confiable y fácil de usar. En este artículo, respaldará, restaurará y migrará una base de datos de MongoDB de muestra.

      Importar y exportar una base de datos implica gestionar los datos en un formato legible por el ser humano y compatible con otros productos de software. Por el contrario, las operaciones de copia de seguridad y restauración de MongoDB crean o utilizan datos binarios específicos de MongoDB, que preservan no solo la uniformidad y la integridad de sus datos, sino también sus atributos específicos de MongoDB. Por lo tanto, para migrar, generalmente es preferible usar la copia de seguridad y la restauración siempre que los sistemas de origen y destino sean compatibles.

      Requisitos previos

      Antes de seguir este tutorial, asegúrese de completar los siguientes requisitos previos:

      Salvo que se indique lo contrario, todos los comandos que requieren privilegios root en este tutorial deben ejecutarse como usuario no root con privilegios sudo.

      Paso 1: Usar JSON y BSON en MongoDB

      Antes de continuar con este artículo, es necesario tener algunos conocimientos básicos sobre la materia. Si tiene experiencia con otros sistemas de base de datos NoSQL como Redis, es posible que encuentre algunas similitudes cuando trabaje con MongoDB.

      MongoDB utiliza los formatos JSON y BSON (JSON binario) para almacenar su información. JSON es el formato legible por el ser humano perfecto para exportar y, finalmente, importar sus datos. Además, puede administrar los datos exportados con cualquier herramienta que sea compatible con JSON, incluyendo un editor de texto simple.

      Un ejemplo de documento JSON tiene el siguiente aspecto:

      Example of JSON Format

      {"address":[
          {"building":"1007", "street":"Park Ave"},
          {"building":"1008", "street":"New Ave"},
      ]}
      

      Es conveniente trabajar con JSON, pero no es compatible con todos los tipos de datos disponibles en BSON. Eso significa que habrá la llamada “pérdida de fidelidad” de la información si utiliza JSON. Para respaldar y restaurar, es mejor usar el BSON binario.

      En segundo lugar, no tiene que preocuparse por crear explícitamente una base de datos de MongoDB. Si la base de datos que especifica para la importación no existe todavía, se creará automáticamente. Aún mejor es el caso de la estructura de las colecciones (tablas de base de datos). A diferencia de otros motores de bases de datos, en MongoDB, la estructura se crea de nuevo automáticamente al insertar el primer documento (fila de la base de datos).

      En tercer lugar, en MongoDB, leer o insertar grandes cantidades de datos, como las tareas de este artículo, puede requerir de muchos recursos y utilizar gran parte de su CPU, memoria y espacio de disco. Eso es crucial teniendo en cuenta que MongoDB se suele utilizar para las grandes bases de datos y los macrodatos. La solución más sencilla a este problema es ejecutar las exportaciones y las copias de seguridad durante la noche o en horas no pico.

      En cuarto lugar, la consistencia de la información podría ser un problema si tiene un servidor MongoDB ocupado en el que la información cambia durante el proceso de exportación o respaldo de la base de datos. Una posible solución para este problema es la replicación, que puede considerar cuando avance en el tema de MongoDB.

      Aunque puede usar las funciones de importación y exportación para respaldar y restaurar los datos, hay mejores formas de garantizar la integridad total de sus bases de datos de MongoDB. Para respaldar sus datos, debe usar el comando mongodump. Para restaurar, utilice mongorestore. Veamos cómo funcionan.

      Paso 2: Utilizar mongodump para respaldar una base de datos de MongoDB

      Primero, vamos a respaldar su base de datos de MongoDB.

      Un argumento esencial para mongodump es --db, que especifica el nombre de la base de datos que desea respaldar. Si no se especifica el nombre de la base de datos, mongodump hace una copia de seguridad de todas las bases de datos. El segundo argumento importante es --out, que define el directorio en el que se verterán los datos. Por ejemplo, vamos a respaldar la base de datos newdb y vamos a almacenarla en el directorio /var/backups/mongobackups. Lo ideal es que tengamos cada una de nuestras copias de seguridad en un directorio con la fecha actual como /var/backup/mongobackups/10-29-20.

      Primero, cree el directorio /var/backup/mongobackups:

      • sudo mkdir /var/backups/mongobackups

      Luego, ejecute mongodump:

      • sudo mongodump --db newdb --out /var/backups/mongobackups/`date +"%m-%d-%y"`

      Verá un resultado similar a este:

      Output

      2020-10-29T19:22:36.886+0000 writing newdb.restaurants to 2020-10-29T19:22:36.969+0000 done dumping newdb.restaurants (25359 documents)

      Tenga en cuenta que en la ruta del directorio anterior, hemos usado date +"%m-%d-%y", que obtiene automáticamente la fecha actual. Eso nos permitirá tener copias de seguridad dentro del directorio, como /var/backup/10-29-20/. Esto es especialmente conveniente cuando automatizamos las copias de seguridad.

      En este punto, tenemos una copia de seguridad competa de la base de datos newdb en el directorio /var/backup/mongobackups/10-29-20/newdb/. Esta copia de seguridad tiene todo lo necesario para restaurar el newdb de forma adecuada y preservar la llamada “fidelidad”.

      Como regla general, debe realizar copias de seguridad con regularidad y preferiblemente cuando el servidor está menos cargado. Por lo tanto, puede configurar el comando mongodump como tarea de cron para que se ejecute regularmente, por ejemplo, cada día a la 03:03 a.m.

      Para ello, abra crontab, el editor de Cron:

      Tenga en cuenta que cuando ejecute sudo crontab, editará las tareas de cron para el usuario root. Esto se recomienda porque si establece los crones de su usuario, podrían no ejecutarse correctamente, especialmente si su perfil sudo requiere verificación de contraseña.

      Dentro de la línea de comandos de crontab, inserte el siguiente comando mongodump:

      crontab

      3 3 * * * mongodump --out /var/backups/mongobackups/`date +"%m-%d-%y"`
      

      En el comando anterior, omitimos el argumento --db a propósito porque normalmente querrá tener todas las bases de datos respaldadas.

      Dependiendo del tamaño de su base de datos de MongoDB, es posible que pronto se quede sin espacio en el disco con demasiadas copias de seguridad. Es por eso que también se recomienda limpiar las copias de seguridad antiguas con regularidad o comprimirlas.

      Por ejemplo, para eliminar todas las copias de seguridad de más de siete días, puede usar el siguiente comando bash:

      • find /var/backups/mongobackups/ -mtime +7 -exec rm -rf {} ;

      De forma similar al comando mongodump anterior, también puede añadirlo como tarea de cron. Debe ejecutarse justo antes de iniciar la siguiente copia de seguridad, por ejemplo, a las 03:01 a.m. Para ello, abra crontab de nuevo:

      Después de eso, inserte la siguiente línea:

      crontab

      1 3 * * * find /var/backups/mongobackups/ -mtime +7 -exec rm -rf {} ;
      

      Guarde y cierre el archivo.

      Completar todas las tareas en este paso garantizará una solución de respaldo adecuada para sus bases de datos de MongoDB.

      Paso 3: Usar mongorestore para restaurar y migrar una base de datos de MongoDB

      Cuando restaura su base de datos de MongoDB desde una copia de seguridad anterior, tiene la copia exacta de su información de MongoDB en un momento determinado, incluyendo todos los índices y los tipos de datos. Esto es especialmente útil cuando desea migrar sus bases de datos de MongoDB. Para restaurar MongoDB, usaremos el comando mongorestore, que funciona con las copias de seguridad binarias que produce mongodump.

      Continuemos nuestros ejemplos con la base de datos newdb y veremos cómo podemos restaurarla desde la copia de seguridad tomada anterior. Primero, especificaremos el nombre de la base de datos con el argumento --nsInclude Usaremos newdb* para restaurar todas las colecciones. Para restaurar una colección única como los restaurantes, utilice newdb.restaurants en su lugar.

      Luego, con --drop, nos aseguraremos de que la base de datos de destino se elimine primero para que la copia de seguridad se restaure en una base de datos limpia. Como argumento final, especificaremos el directorio de la última copia de seguridad, que tendrá un aspecto similar a este: /var/backup/mongobackups/10-29-20/newdb/.

      Una vez que tenga una copia de seguridad con marca de tiempo, puede restaurarla usando este comando:

      • sudo mongorestore --db newdb --drop /var/backups/mongobackups/10-29-20/newdb/

      Verá un resultado similar a este:

      Output

      2020-10-29T19:25:45.825+0000 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead 2020-10-29T19:25:45.826+0000 building a list of collections to restore from /var/backups/mongobackups/10-29-20/newdb dir 2020-10-29T19:25:45.829+0000 reading metadata for newdb.restaurants from /var/backups/mongobackups/10-29-20/newdb/restaurants.metadata.json 2020-10-29T19:25:45.834+0000 restoring newdb.restaurants from /var/backups/mongobackups/10-29-20/newdb/restaurants.bson 2020-10-29T19:25:46.130+0000 no indexes to restore 2020-10-29T19:25:46.130+0000 finished restoring newdb.restaurants (25359 documents) 2020-10-29T19:25:46.130+0000 done

      En el caso anterior, estamos restaurando los datos en el mismo servidor donde creamos la copia de seguridad. Si desea migrar los datos a otro servidor y usar la misma técnica, deberá copiar el directorio de la copia de seguridad, que es /var/backups/mongobackups/10-29-20/newdb/ en nuestro caso, al otro servidor.

      Conclusión

      Ahora, ha realizado algunas tareas esenciales relacionadas con el respaldo, la restauración y la migración de sus bases de datos de MongoDB. Ningún servidor MongoDB de producción debería funcionar sin una estrategia de respaldo fiable, como la que se describe aquí.



      Source link