NoSQL-Datenbank-Engine für dokumentenorientierte Datenbanken.
MongoDB ist die Lösung für Datenbankanforderungen, die sich von der traditionellen relationalen Verwaltung entfernen: Treten Sie ein in eine NoSQL-Lösung, die von Unternehmen wie eBay und Forbes genutzt wird. Die Dokumentendatenbank ermöglicht es Anwendern, mit der Erstellung von Dokumenten in Ihrer Datenbank zu beginnen, ohne dass eine Dokumentenstruktur festgelegt werden muss, was es den Anwendern ermöglicht, Dokumente "on the fly" zu bearbeiten und schnell zu skalieren. Aufgrund dieser Flexibilität sowohl bei der Datenstruktur als auch bei der Verwaltung wird MongoDB häufig als Einzeldatenbanklösung für Unternehmen und Organisationen mit schwankendem DB-Bedarf eingesetzt.
Erstellen Sie Ihre eigene flexible Datenbank mit der Marketplace-App für MongoDB von Linode.
Bereitstellen der MongoDB Marketplace App
Der Linode Marketplace ermöglicht Ihnen, mit dem Linode Cloud Manager ganz einfach Software auf einer Linode einzusetzen.
- Loggen Sie sich in den Cloud Manager ein und wählen Sie den Link Marketplace aus dem linken Navigationsmenü. Dies zeigt die Seite Linode Compute Create mit der vorgewählten Registerkarte Marketplace an.
- Wählen Sie unter dem Abschnitt App auswählen die App aus, die Sie bereitstellen möchten.
- Füllen Sie alle erforderlichen Optionen für die ausgewählte Anwendung sowie alle gewünschten erweiterten Optionen (die optional sind) aus. Weitere Informationen finden Sie im Abschnitt Konfigurationsoptionen.
- Füllen Sie den Rest des Formulars wie im Abschnitt Erstellen einer Recheninstanz beschrieben aus.
- Klicken Sie auf die Schaltfläche Linode erstellen. Sobald die Linode eingerichtet und vollständig eingeschaltet ist, warten Sie, bis die Softwareinstallation abgeschlossen ist. Wenn die Linode vor diesem Zeitpunkt ausgeschaltet oder neu gestartet wird, wird die Software-Installation wahrscheinlich fehlschlagen. Um festzustellen, ob die Installation abgeschlossen ist, öffnen Sie die Lish-Konsole der Linode und warten Sie, bis die Aufforderung zur Systemanmeldung erscheint.
- Folgen Sie den Anweisungen im Abschnitt Erste Schritte nach der Installation.
Die Softwareinstallation sollte innerhalb von 2-5 Minuten abgeschlossen sein, nachdem die Linode die Bereitstellung beendet hat.
Konfigurationsoptionen
MongoDB-Optionen
Hier sind die zusätzlichen Optionen, die für diese Marketplace-App verfügbar sind:
Feld | Beschreibung |
---|---|
MongoDB-Admin-Benutzer-Passwort | Das Passwort des Mongo-Admin-Benutzers. Erforderlich. |
MongoDB-Version | Wählen Sie die Version von MongoDB, die Sie installieren möchten. |
Admin-E-Mail für den Server | Die SOA-E-Mail-Adresse (Start of Authority) für diesen Server. Diese E-Mail-Adresse wird dem SOA-Eintrag für die Domäne hinzugefügt. Dieses Feld ist erforderlich, wenn Sie möchten, dass das Installationsprogramm DNS-Einträge erstellt. |
Ihr Token für das Linode-API | Ihr Linode API Token wird zum Erstellen von DNS-Einträgen benötigt. Wenn dies zusammen mit dem subdomain und domain Felder, versucht die Installation, DNS-Einträge über das Linode-API zu erstellen. Wenn Sie kein Token haben, aber möchten, dass die Installation DNS-Einträge erstellt, müssen Sie einen erstellen bevor Sie fortfahren. |
Subdomain | Die Subdomain, für die das Installationsprogramm während des Setups einen DNS-Eintrag erstellen soll. Der angegebene Vorschlag lautet www . Die Subdomain sollte nur angegeben werden, wenn Sie auch eine domain und API Token . |
Domain | Der Domainname, unter dem Sie auf Ihre Anwendung zugreifen möchten. Das Installationsprogramm erstellt während der Installation einen DNS-Eintrag für diese Domäne, wenn Sie dieses Feld zusammen mit Ihren API Token . |
Eingeschränkte sudo-Nutzer für eine Linode erstellen | Dies ist das begrenzte Nutzerkonto, das für die Linode erstellt werden soll. Dieses Konto hat sudo-Benutzerrechte. |
Passwort für den eingeschränkten sudo-Benutzer | Legen Sie ein Passwort für den eingeschränkten sudo-Nutzer fest. Das Passwort muss komplex genug sein für ein sicheres Passwort. Dieses Kennwort kann - ähnlich wie ein root Passwort - zum Ausführen aller Aktionen auf dem Server verwendet werden, also machen Sie es lang, kompliziert und eindeutig. |
Der öffentliche SSH Schlüssel, der für den Zugriff auf die Linode verwendet werden soll | Wenn Sie den SSH-Zugang nicht über ein Passwort, sondern über einen öffentlichen Schlüssel (empfohlen) vornehmen möchten, geben Sie hier den öffentlichen Schlüssel ein. |
Root-Zugriff über SSH deaktivieren? | Auswählen Yes um das Root-Konto für die Anmeldung am Server über SSH zu sperren. Wählen Sie No um dem Root-Konto die Anmeldung über SSH zu ermöglichen. |
Allgemeine Optionen
Hinweise zum Ausfüllen der verbleibenden Optionen im Formular Create a Linode finden Sie unter Erstellen einer Recheninstanz. Einige Optionen können eingeschränkt sein oder haben empfohlene Werte, die auf dieser Marketplace-App basieren:
- Unterstützte Distributionen: Debian 11, Ubuntu 20.04 LTS
- Empfohlener Mindesttarif: Alle Tariftypen und -größen können verwendet werden. Für größere Datenbanken in einer Produktionsumgebung sollte jedoch eine High-Memory-Recheninstanz in Betracht gezogen werden.
Erste Schritte nach der Bereitstellung
Zugriff auf die MongoDB-Shell
Nachdem die Bereitstellung von MongoDB abgeschlossen ist, können Sie direkt von der Konsole aus darauf zugreifen und es verwalten.
- Melden Sie sich über SSH oder Lish bei Ihrer Recheninstanz an.
- Starten Sie die Mongo-Shell indem Sie den folgenden Befehl ausführen. Wenn Sie dazu aufgefordert werden, geben Sie das Passwort des Benutzers admin ein, das Sie bei der Erstellung dieser Instanz festgelegt haben.
mongo -u admin -p --authenticationDatabase admin
Die-u
,-p
, und--authenticationDatabase
Optionen im obigen Befehl sind erforderlich, um Verbindungen zur Shell zu authentifizieren. Ohne Authentifizierung kann auf die MongoDB-Shell zugegriffen werden, aber es werden keine Verbindungen zu Datenbanken zugelassen.admin
Benutzer ist rein administrativ, basierend auf den angegebenen Rollen. Er ist als Administrator von Benutzern für alle Datenbanken definiert, hat aber selbst keine Datenbankberechtigungen. Sie können ihn verwenden, um weitere Benutzer zu erstellen und deren Rollen zu definieren. Wenn Sie mehrere Anwendungen mit MongoDB verwenden, richten Sie verschiedene Benutzer mit benutzerdefinierten Berechtigungen für ihre entsprechenden Datenbanken ein.
Eine Benutzertabelle erstellen
- Da die
admin
Benutzer, erstellen Sie eine neue Datenbank, um reguläre Benutzerdaten für die Authentifizierung zu speichern. Das folgende Beispiel ruft diese Datenbank aufuser-data
:use user-data
- Berechtigungen für verschiedene Datenbanken werden in separaten
roles
Objekte. In diesem Beispiel wird der Benutzer angelegt,example-user
mit Nur-Lese-Berechtigungen für das Verzeichnisuser-data
Datenbank und hat Lese- und Schreibrechte für dieexampleDB
Datenbank, die wir in der Verwalten von Daten und Sammlungen Legen Sie einen neuen, nicht-administrativen Benutzer an, um Testdaten einzugeben. Ändern Sie beideexample-user
undpassword
zu etwas Relevantem und Sicherem:db.createUser({user: "example-user", pwd: "password", roles:[{role: "read", db: "user-data"}, {role:"readWrite", db: "exampleDB"}]})
Um weitere Benutzer zu erstellen, wiederholen Sie diesen Schritt als administrativer Benutzer und erstellen neue Benutzernamen, Passwörter und Rollen, indem Sie die entsprechenden Werte ersetzen. - Beenden Sie die Mongo-Shell:
quit()
Weitere Informationen zur Zugriffskontrolle und Benutzerverwaltung sowie weitere Tipps zur Sicherung Ihrer Datenbanken finden Sie in der MongoDB-Sicherheitsdokumentation.
Verwalten von Daten und Sammlungen
Ein Großteil der Popularität von MongoDB beruht auf der einfachen Integration. Die Interaktion mit der Datenbank erfolgt über JavaScript-Methoden, aber es sind auch Treiber für andere Sprachen verfügbar. In diesem Abschnitt werden einige grundlegende Funktionen demonstriert, aber wir empfehlen Ihnen, auf der Grundlage Ihres spezifischen Anwendungsfalls weitere Nachforschungen anzustellen.
- Öffnen Sie die MongoDB-Shell mit dem Befehl
example-user
die wir oben erstellt haben:mongo -u example-user -p --authenticationDatabase user-data
- Erstellen Sie eine neue Datenbank. Dieses Beispiel ruft sie auf
exampleDB
:use exampleDB
Vergewissern Sie sich, dass der Name der Datenbank mit dem Namen der Datenbank übereinstimmt, für die der Benutzer Lese- und Schreibrechte hat (wir haben diese Rechte im vorherigen Abschnitt hinzugefügt).db
-Befehls ersetzt. - Erstellen Sie eine neue Kollektion genannt
exampleCollection
:db.createCollection("exampleCollection", {capped: false})
Wenn Sie mit der MongoDB-Terminologie nicht vertraut sind, können Sie sich eine Sammlung analog zu einer Tabelle in einem relationalen Datenbankmanagementsystem vorstellen. Weitere Informationen zum Erstellen neuer Sammlungen finden Sie in der MongoDB-Dokumentation auf der Seite db.createCollection()-Methode.
Hinweis: Sammlungsnamen sollten bestimmte Satzzeichen wie Bindestriche nicht enthalten. Ausnahmen werden jedoch möglicherweise erst dann ausgelöst, wenn Sie versuchen, die Sammlung zu verwenden oder zu ändern. Weitere Informationen finden Sie in MongoDBs Namensbeschränkungen
. - Erstellen Sie Beispieldaten für die Eingabe in die Testdatenbank. MongoDB akzeptiert die Eingabe als Dokumente in Form von JSON-Objekten wie den unten aufgeführten. Die
a
undb
Zur Vereinfachung der Eingabe werden Variablen verwendet; Objekte können aber auch direkt über Funktionen eingefügt werden.var a = { name : "John Doe", attributes: { age : 30, address : "123 Main St", phone : 8675309 }} var b = { name : "Jane Doe", attributes: { age : 29, address : "321 Main Rd", favorites : { food : "Spaghetti", animal : "Dog" } }}
Beachten Sie, dass Dokumente, die in eine Sammlung eingefügt werden, nicht das gleiche Schema haben müssen, was einer der vielen Vorteile der Verwendung einer NoSQL-Datenbank ist. - Fügen Sie die Daten in
exampleCollection
unter Verwendung derinsert
Methode:db.exampleCollection.insert(a) db.exampleCollection.insert(b)
Die Ausgabe für jede dieser Operationen zeigt die Anzahl der Objekte, die erfolgreich in die aktuelle Arbeitsdatenbank geschrieben wurden:WriteResult({ "nInserted" : 1 })
- Bestätigen Sie, dass die
exampleCollection
Sammlung ordnungsgemäß erstellt wurde:show collections
Die Ausgabe listet alle Sammlungen auf, die Daten innerhalb der aktuellen Arbeitsdatenbank enthalten:exampleCollection
- Anzeigen ungefilterter Daten im
exampleCollection
Sammlung mit derfind
Methode. Diese gibt bis zu den ersten 20 Dokumenten in einer Sammlung zurück, wenn keine Abfrage übergeben wird:db.exampleCollection.find()
Die Ausgabe sieht dann wie folgt aus:{ "_id" : ObjectId("5e68d4618bd4ea23cc3f5e96"), "name" : "John Doe", "attributes" : { "age" : 30, "address" : "123 Main St", "phone" : 8675309 } } { "_id" : ObjectId("5e68d4628bd4ea23cc3f5e97"), "name" : "Jane Doe", "attributes" : { "age" : 29, "address" : "321 Main Rd", "favorites" : { "food" : "Spaghetti", "animal" : "Dog" } } }
Sie werden feststellen, dass den eingegebenen Objekten das Wort_id
Tasten undObjectId
Werte. Dies sind eindeutige Indizes, die von MongoDB erzeugt werden, wenn ein_id
Wert ist nicht explizit definiert.ObjectId
Werte können bei der Eingabe von Abfragen als Primärschlüssel verwendet werden, obwohl Sie der Einfachheit halber vielleicht Ihren eigenen Index erstellen möchten, wie Sie es mit jedem anderen Datenbanksystem tun würden.find
Methode kann auch verwendet werden, um nach einem bestimmten Dokument oder Feld zu suchen, indem man einen Suchbegriffsparameter (in Form eines Objekts) eingibt, anstatt ihn leer zu lassen. Zum Beispiel:db.exampleCollection.find({"name" : "John Doe"})
Die Ausführung des obigen Befehls gibt eine Liste von Dokumenten zurück, die den{"name" : "John Doe"}
Objekt:{ "_id" : ObjectId("5e68d4618bd4ea23cc3f5e96"), "name" : "John Doe", "attributes" : { "age" : 30, "address" : "123 Main St", "phone" : 8675309 } }
Die MongoDB Marketplace App wurde von Linode entwickelt. Wenn Sie Unterstützung bei der Bereitstellung der App benötigen, wenden Sie sich an den Linode-Support über die in der Seitenleiste aufgeführten Informationen. Für Support bezüglich des Tools oder der Software selbst, besuchen Sie die MongoDB Gemeinschaft.