{}const=>[]async()letfn</>var
EntwicklungSQL

NoSQL: Einführung in MongoDB für Anfänger

Eine vollständige MongoDB-Anleitung für Entwickler: Lernen Sie die Grundlagen von NoSQL-Datenbanken kennen, lernen Sie, mit Dokumenten und Sammlungen zu arbeiten, lernen Sie Abfragen und Datenaggregation. Praktische Beispiele in JavaScript und Node.js helfen Ihnen, MongoDB schnell in Ihren Projekten zu verwenden.

К

Kodik

Autor

7 Min. Lesezeit

Was ist NoSQL?

NoSQL (Not Only SQL) ist ein Ansatz für die Datenbankgestaltung, der sich vom traditionellen relationalen Modell unterscheidet. Im Gegensatz zu SQL-Datenbanken mit ihrer starren Tabellenstruktur bieten NoSQL-Datenbanken flexiblere Modelle zur Speicherung von Informationen.

Zu den Hauptvorteilen von NoSQL-Datenbanken gehören ein flexibles Datenschema, horizontale Skalierung, hohe Leistung bei der Verarbeitung großer Datenmengen und die Fähigkeit, effizient mit unstrukturierten Daten zu arbeiten.

🔥 100.000+ Schüler sind bereits bei uns

Genug Theorie gelesen?
Zeit zu coden!

Kodik — eine App, in der du durch Praxis programmieren lernst. KI-Mentor, interaktive Lektionen, echte Projekte.

🤖 KI 24/7
🎓 Zertifikate
💰 Kostenlos
🚀 Jetzt starten
Heute beigetreten

Warum MongoDB?

MongoDB ist eine dokumentenorientierte NoSQL-Datenbank. Dies bedeutet, dass Daten als Dokumente gespeichert werden, die JSON-Objekten ähneln. Dieser Ansatz ist besonders nützlich für Webentwickler, die mit JavaScript arbeiten, da die Datenstruktur in MongoDB auf natürliche Weise Objekten im Code entspricht.

MongoDB hat aufgrund mehrerer wichtiger Funktionen an Popularität gewonnen. Erstens bietet es ein dynamisches Schema, das es einfach macht, die Datenstruktur ohne Migrationen zu ändern. Zweitens bietet MongoDB eine hohe Leistung beim Lesen und Schreiben von Daten. Drittens lässt sich die Datenbank durch Sharding leicht horizontal skalieren. MongoDB bietet auch eine leistungsstarke Abfragesprache und unterstützt die Replikation, um die Ausfallsicherheit zu gewährleisten.

Grundlegende Konzepte von MongoDB

Bevor Sie mit MongoDB arbeiten, ist es wichtig, die grundlegenden Konzepte zu verstehen, die sich von relationalen Datenbanken unterscheiden.

MongoDB verwendet Sammlungen anstelle von Tabellen und Dokumente anstelle von Zeilen. Ein Dokument ist eine Reihe von Schlüssel-Wert-Paaren, die einem JSON-Objekt sehr ähnlich sind. Gleichzeitig können Dokumente in einer Sammlung unterschiedliche Strukturen haben, was die Flexibilität des Schemas gewährleistet.

Jedes Dokument hat eine eindeutige Kennung im Feld _id, die von MongoDB automatisch generiert wird, wenn Sie sie nicht selbst angegeben haben. MongoDB verwendet das BSON-Format (Binary JSON) zum Speichern von Dokumenten, was die Effizienz und Unterstützung zusätzlicher Datentypen wie Date oder Binary gewährleistet.

MongoDB installieren

Der Einstieg in MongoDB ist ganz einfach. Sie können die Datenbank lokal auf Ihrem Computer installieren oder den Cloud-Service MongoDB Atlas verwenden.

Für eine lokale Installation besuchen Sie die offizielle Website von MongoDB und laden Sie die Version für Ihr Betriebssystem herunter. Unter Windows erfolgt die Installation über das Standard-Installationsprogramm, unter macOS ist es bequem, Homebrew mit dem Befehl brew install mongodb-community zu verwenden, und unter Linux erfolgt die Installation über den Paketmanager Ihrer Distribution.

MongoDB Atlas bietet einen kostenlosen Cloud-Cluster, der sich hervorragend für Schulungen und kleine Projekte eignet. Registrieren Sie sich einfach auf der MongoDB Atlas-Website und erstellen Sie Ihren ersten Cluster.

Erste Schritte mit MongoDB

Nach der Installation können Sie über die Befehlszeile eine Verbindung zu MongoDB herstellen mongosh. Schauen wir uns die grundlegenden Operationen an.

Die Erstellung einer Datenbank und Sammlung erfolgt implizit, wenn die Daten zum ersten Mal eingefügt werden. Verwenden Sie den Befehl use myDatabase, um zur Datenbank zu wechseln. MongoDB erstellt automatisch eine Datenbank, wenn das erste Dokument hinzugefügt wird.

Um ein Dokument in eine Sammlung einzufügen, verwenden Sie die Methode insertOne oder insertMany. Sie können beispielsweise einen Benutzer wie folgt hinzufügen:

db.users.insertOne({
  name: "Alexey",
  email: "alexey@example.com",
  age: 28,
  skills: ["JavaScript", "Python", "MongoDB"]
})

Die Suche nach Dokumenten erfolgt mit der Methode find. Um alle Benutzer zu finden, verwenden Sie db.users.find (), und um nach einem bestimmten Benutzer zu suchen, können Sie eine Bedingung anwenden, z. B. db.users.findOne ({name: "Alexey"}).

Dokumente werden mit Hilfe von updateOne oder updateMany aktualisiert. Sie können einem Benutzer beispielsweise wie folgt eine Fähigkeit hinzufügen:

db.users.updateOne(
  {name: "Alexey"},
  {$push: {skills: "TypeScript"}}
)

Dokumente werden über deleteOne oder deleteMany gelöscht. Der Befehl db.users.deleteOne({name: "Алексей"}) löscht das Benutzerdokument.

Arbeiten mit MongoDB in Node.js

Für echte Anwendungen arbeiten Sie mit MongoDB über Treiber oder ODM (Object Document Mapper). Die beliebteste Bibliothek für Node.js ist Mongoose.

Installieren Sie Mongoose mit dem Befehl npm install mongoose. Stellen Sie dann eine Verbindung zur Datenbank her:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/myapp')
  .then(() => console.log('Connected to MongoDB'))
  .catch(err => console.error('Connection error:', err));

Mit Mongoose können Sie Schemata für Ihre Dokumente definieren, auch wenn MongoDB kein starres Schema benötigt:

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  age: Number,
  skills: [String],
  createdAt: {
    type: Date,
    default: Date.now
  }
});

const User = mongoose.model('User', userSchema);

Jetzt können Sie Benutzer über das Modell erstellen und speichern:

const newUser = new User({
  name: 'Maria',
  email: 'maria@example.com',
  age: 25,
  skills: ['Vue.js', 'CSS']
});

await newUser.save();

Erweiterte Anfragen

MongoDB bietet eine umfangreiche Reihe von Operatoren zum Erstellen komplexer Abfragen.

Mit Vergleichsoperatoren können Sie Dokumente nach Bedingungen suchen. Zum Beispiel können Sie alle Benutzer über 25 Jahre wie folgt finden: db.users.find({age: {$gt: 25}}). Die Operatoren $eq (gleich), $ne (ungleich), $gt (größer), $gte (größer oder gleich), $lt (kleiner), $lte (kleiner oder gleich) und $in (Wert im Array) sind verfügbar.

Logische Operatoren helfen, Bedingungen zu kombinieren. Der $and-Operator ermöglicht es Ihnen, mehrere Bedingungen zu kombinieren, $or führt ein logisches ODER aus und $not invertiert die Bedingung.

Array-Operatoren sind besonders nützlich, wenn Sie mit Array-Feldern arbeiten. Zum Beispiel prüft $all alle angegebenen Elemente, $elemMatch sucht nach Array-Elementen unter einer komplexen Bedingung und $size prüft die Größe des Arrays.

Indizes in MongoDB

Indizes sind für die Abfrageleistung von entscheidender Bedeutung. Ohne Indizes durchsucht MongoDB die gesamte Sammlung nach den gewünschten Dokumenten.

Sie können einen Index mit dem Befehl db.users.createIndex ({email: 1}) erstellen, wobei 1 für aufsteigende Reihenfolge und -1 für absteigende Reihenfolge steht. Für Felder, die Sie häufig durchsuchen, sollten Sie Indizes erstellen.

MongoDB unterstützt verschiedene Arten von Indizes: Einzelindizes für ein Feld, zusammengesetzte Indizes für mehrere Felder, Textindizes für die Volltextsuche und Geodatenindizes für die Arbeit mit Koordinaten.

Um vorhandene Indizes anzuzeigen, verwenden Sie db.users.getIndexes(), und um einen Index zu löschen, verwenden Sie db.users.dropIndex("index_name").

Datenaggregation

Das Aggregations-Framework in MongoDB ermöglicht eine komplexe Datenverarbeitung, ähnlich wie GROUP BY in SQL, aber viel leistungsfähiger.

Die Aggregation funktioniert wie ein Förderband, bei dem Daten nacheinander die Verarbeitungsstufen durchlaufen. Um beispielsweise die Anzahl der Benutzer nach Alter zu berechnen:

db.users.aggregate([
  {
    $group: {
      _id: "$age",
      count: {$sum: 1}
    }
  },
  {
    $sort: {count: -1}
  }
])

Die Hauptphasen der Aggregation umfassen $match zum Filtern von Dokumenten, $group zum Gruppieren und Berechnen, $sort zum Sortieren, $project zum Auswählen und Konvertieren von Feldern, $limit und $skip zum Paginieren sowie $lookup zum Kombinieren von Daten aus verschiedenen Sammlungen.

Wann man MongoDB verwendet

MongoDB ist nicht für alle Projekte geeignet. Überlegen Sie, wann seine Verwendung gerechtfertigt ist.

MongoDB eignet sich hervorragend für Anwendungen mit sich schnell ändernden Datenschemata, Content-Management-Systeme und Blogs, Echtzeitanwendungen, Katalog- und Produktsysteme, IoT-Anwendungen mit hohem Datenfluss und Analysesysteme mit großen Datenmengen.

MongoDB ist jedoch möglicherweise nicht die beste Wahl für Systeme mit mehreren Beziehungen zwischen Entitäten, bei denen herkömmliche SQL-Datenbanken mit JOIN-Abfragen effizienter sind. Auch für Anwendungen, die komplexe Transaktionen mit mehreren Operationen erfordern, können klassische relationale Datenbanken vorzuziehen sein. In Systemen mit einer starren Datenstruktur, die sich selten ändert, sind die Vorteile von NoSQL möglicherweise weniger offensichtlich.

MongoDB-Sicherheit

Sicherheit ist für jede Datenbank von entscheidender Bedeutung.

Aktivieren Sie immer die Authentifizierung und erstellen Sie Benutzer mit den minimal erforderlichen Berechtigungen. Verwenden Sie kein Root-Konto für Anwendungen. Konfigurieren Sie Netzwerkeinschränkungen, damit MongoDB nur über vertrauenswürdige Netzwerke zugänglich ist. Verwenden Sie SSL/TLS, um Verbindungen zu verschlüsseln.

Sichern Sie Ihre Daten regelmäßig. MongoDB bietet die Tools mongodump und mongorestore zum Erstellen und Wiederherstellen von Backups. Verwenden Sie in einer Produktionsumgebung die Replikation, um die Ausfallsicherheit zu gewährleisten.

Befund

MongoDB ist eine leistungsstarke und flexible Datenbank, die sich hervorragend für moderne Webanwendungen eignet. Das dokumentenorientierte Datenmodell entspricht auf natürliche Weise der Struktur der Objekte im Code, und das Fehlen eines starren Schemas ermöglicht eine schnelle Iteration und Anpassung an sich ändernde Anforderungen.

Der Einstieg in MongoDB ist recht einfach, aber eine effektive Nutzung erfordert ein Verständnis seiner Funktionen und Unterschiede zu relationalen Datenbanken. Das richtige Schemadesign, die Verwendung von Indizes und das Verständnis von Abfragemustern helfen Ihnen dabei, eine leistungsstarke und skalierbare Lösung zu erstellen.

Erkunden Sie weiterhin die Funktionen von MongoDB, experimentieren Sie mit Aggregation, lernen Sie Replikation und Sharding. Diese Datenbank bietet viel mehr Funktionen, als wir in unserem Einführungsartikel behandeln konnten, und eine gründliche Kenntnis von MongoDB wird eine wertvolle Fähigkeit in Ihrem Entwickler-Arsenal sein.

Wenn Sie Ihre Programmierkenntnisse vertiefen und MongoDB genauer kennenlernen möchten, treten Sie der Bildungsplattform bei Kodik. Hier finden Sie strukturierte Kurse zu JavaScript, Python, Datenbanken und anderen Technologien und können Unterstützung bei der aktiven Telegram-Community Entwickler. Gemeinsam lernt man leichter – teilen Sie Ihre Erfahrungen, stellen Sie Fragen und entwickeln Sie sich gemeinsam mit Gleichgesinnten weiter!

🎯Hör auf zu zögern

Artikel gefallen?
Zeit zum Üben!

Bei Kodik liest du nicht nur — du schreibst sofort Code. Theorie + Praxis = echte Skills.

Sofortige Praxis
🧠KI erklärt Code
🏆Zertifikat

Keine Registrierung • Keine Karte