Direkt zum Inhalt

Sammlungen in MongoDB erstellen: Manuelle und automatische Methoden

Hier erfährst du, wie Sammlungen in MongoDB erstellt werden, wann du sie explizit definieren musst und welche wichtigen Konfigurationsoptionen es gibt.
Aktualisierte 23. Juni 2025  · 5 Min. Lesezeit

Wenn du mit MongoDB arbeitest, vor allem als Entwickler, der aus einer relationalen Datenbank kommt, ist eines der ersten Dinge, die du bemerken wirst, wie flexibel das Schema-Design sein kann.

Sammlungen in MongoDB müssen nicht explizit erstellt werden, aber es gibt Zeiten, in denen es sinnvoll ist, sie explizit zu definieren und sorgfältig zu konfigurieren.

In diesem Artikel schauen wir uns an, wie und wann du eine Sammlung in MongoDB erstellen kannst, welche wichtigen Konfigurationsoptionen zu beachten sind und welche Codebeispiele in JS und C# (mein Favorit) es gibt. 

Keine Sorge, wir haben eine große Funktionsgleichheit zwischen den Treibern, so dass vieles von dem, was du heute hier siehst, auch in <Füge die Sprache deiner Wahl ein> möglich ist.

Wenn du neu im Bereich NoSQL-Datenbanken bist, solltest du mit der Einführung in NoSQL beginnen.

Was ist eine MongoDB-Sammlung?

Bevor wir uns ansehen, wie man Sammlungen erstellt, wollen wir kurz besprechen, was eine Sammlung eigentlich ist. 

Wenn du aus einer SQL-Umgebung kommst, bist du es vielleicht gewohnt, von Tabellen, Zeilen und Spalten zu hören. In MongoDB sind die Begriffe etwas anders. Anstelle von Tabellen haben wir Sammlungen und anstelle von Zeilen haben wir Dokumente mit Feldern und nicht mit Spalten. 

Eine der größten Stärken von MongoDB ist sein dynamisches Schema. Das bedeutet, dass du eine Sammlung nicht manuell erstellen musst, bevor du sie verwendest. Wenn du ein Dokument in eine Sammlung einfügst, die noch nicht existiert, erstellt MongoDB es automatisch. Wenn du zum Beispiel: 

db.movies.insertOne({ title: "The Matrix", year: 1999 });

Es wird versucht, ein einzelnes Dokument für den Film "The Matrix" in die Sammlung movies einzufügen. Wenn diese bereits existiert, wird das Dokument der Sammlung hinzugefügt. Wenn das nicht der Fall ist, wird die Sammlung movies erstellt, bevor das neue Dokument hinzugefügt wird.

Du kannst auch viele Dokumente auf einmal hinzufügen, indem du insertMany anstelle von insertOne verwendest.

Wann MongoDB-Sammlungen explizit definiert werden sollten

Auch wenn du die Erstellung von Sammlungen automatisch von MongoDB erledigen lassen kannst, gibt es gute Gründe, Sammlungen im Voraus zu definieren, insbesondere in Produktionsszenarien. Das explizite Anlegen von Sammlungen gibt dir die Möglichkeit,:

  • Konfiguriere gekappte Sammlungen für die Protokollierung oder das Caching.
  • Richte Validierungsregeln ein, um Einschränkungen in deinen Schemata durchzusetzen.
  • bestimmte Standard-Indizes wie Time-to-Live (TTL) anwenden. Diese Indizes für ein Datumsfeld löschen automatisch Dokumente in deiner Sammlung nach einer von dir festgelegten Zeitspanne.
  • Optimiere die Collections für schreibintensive Workloads, indem du sie vorbereitest.

So erstellst du eine Sammlungin der MongoDB-Shell:

db.createCollection("auditLogs", {
  capped: true,
  size: 10485760, // 10 MB
  max: 1000
});

Oder mit Validierung:

db.createCollection("users", {
  validator: {
    $jsonSchema: {
      bsonType: "object",
      required: ["email", "createdAt"],
      properties: {
        email: {
          bsonType: "string",
          pattern: "^.+@.+$"
        },
        createdAt: {
          bsonType: "date"
        }
      }
    }
  }
});

Obwohl MongoDB ein flexibles Schema unterstützt, möchtest du vielleicht trotzdem Validierungsregeln hinzufügen, z. B. erforderliche Felder oder die Angabe von Eigenschaften für bestimmte Felder, wie Datentypen oder Formatierungen für E-Mails, wie oben gezeigt. Dies ist notwendig, wenn du sicherstellen willst, dass deine Dokumente einem bestimmten Schema folgen. 

Die Schemaerzwingung wird dir vertraut vorkommen, wenn du aus dem SQL-Umfeld kommst, und selbst wenn nicht, müssen deine Anwendungen in der Produktion manchmal vorhersehbar geformte Dokumente haben. Die Validierung ist also hervorragend dafür geeignet!

Erstellen von MongoDB-Sammlungen mit dem C#-Treiber

In einer C#-Anwendung kannst du auch explizit Sammlungen mit dem MongoDB-Treiber erstellen. Für die grundlegenden Vorgänge ist dies zwar nicht erforderlich, aber hier kannst du erweiterte Optionen programmatisch einstellen.

var options = new CreateCollectionOptions
{
    Capped = true,
    MaxSize = 10485760, // 10 MB
    MaxDocuments = 1000
};

await database.CreateCollectionAsync("auditLogs", options);

Um einen Validator hinzuzufügen:

var validator = new BsonDocument
{
    { "$jsonSchema", new BsonDocument
        {
            { "bsonType", "object" },
            { "required", new BsonArray { "email", "createdAt" } },
            { "properties", new BsonDocument
                {
                    { "email", new BsonDocument
                        {
                            { "bsonType", "string" },
                            { "pattern", "^.+@.+$" }
                        }
                    },
                    { "createdAt", new BsonDocument
                        {
                            { "bsonType", "date" }
                        }
                    }
                }
            }
        }
    }
};

var collectionOptions = new CreateCollectionOptions<BsonDocument>
{
    Validator = new BsonDocumentFilterDefinition<BsonDocument>(validator)
};

await database.CreateCollectionAsync("users", collectionOptions);

Für Python-Entwicklerist das Tutorial Einführung in MongoDB und Python eine gute Ressource.

Wichtige Konfigurationsoptionen für Sammlungen, die du kennen solltest

Wenn du explizit Sammlungen erstellst, sind hier einige Optionen, die du kennen solltest:

  • capped: erstellt eine Sammlung mit fester Größe
  • size: Maximale Größe in Bytes für eine gekappte Sammlung
  • max: maximale Anzahl von Dokumenten erlaubt
  • validator: JSON-Objekt in Schemasyntax, das die Schema-Validierung definiert
  • expireAfterSeconds: Wird mit TTL-Indizes verwendet, um die automatische Löschung von Dokumenten zu handhaben.

Du kannst Indizes auchbei der Erstellungme oder kurz danach anwenden. MongoDB erstellt nicht automatisch Indizes, es sei denn, sie sind für _id erforderlich.

Mit Indizes in MongoDB kannst du die Leistung deiner am häufigsten genutzten Felder verbessern. Diese Werte werden im Speicher zwischengespeichert, so dass keine Festplattenaufrufe erforderlich sind, was bei regelmäßigem Zugriff viel Zeit und Leistung sparen kann.

Best Practices für die Definition von MongoDB-Sammlungen

Hier sind ein paar Richtlinien, die dir helfen zu entscheiden, wann du Sammlungen explizit definieren solltest:

  • Implizite Erstellung für schnelle Proof-of-Concepts oder lokale Entwicklung oder wenn der Endnutzer in der Lage ist, den Inhalt dynamisch zu erstellen
  • Explizite Erstellung für den Fall, dass du eine Validierung anwenden oder Einstellungen für die Indizierung oder Leistung vornehmen willst

Fazit

MongoDB ist für sein flexibles Schema bekannt, mit dem wir unsere Daten flexibel strukturieren können, auch bei der Erstellung und Verwaltung von Sammlungen. Während die implizite Erstellung schnell und bequem ist, bieten explizite Sammlungsdefinitionen leistungsstarke Funktionen wie Schemavalidierung, Capped Behavior und Performance-Tuning.

Wie immer macht MongoDB Atlas die Verwaltung von Sammlungen mit UI-basierten Tools, Automatisierung und integrierten Leistungseinblicken noch einfacher. Und wenn du in .NET arbeitest, ist der C#-Treiber mit stark typisierten Modellen und flüssigen APIs für dich da.

Wenn du über die besten Praktiken für die Definition von MongoDB-Sammlungen nachdenkst,kann es auch von Vorteil sein, die grundlegendenPrinzipien des Datenbankdesigns zu verstehen.

Viel Spaß beim Codieren! Mögen deine Sammlungen schnell, gültig und gut indexiert sein!

Werde Dateningenieur

Beweise deine Fähigkeiten als einsatzbereiter Datentechniker.
Meine Datenkarriere auf der Überholspur

FAQs

Was ist der Unterschied zwischen impliziter und expliziter Sammlungserstellung in MongoDB?

  • Implizite Erstellung: MongoDB erstellt automatisch eine Sammlung, wenn du ein Dokument in eine nicht existierende Sammlung einfügst. Das ist nützlich für schnelle Prototypen oder Entwicklung.
  • Explizite Erstellung: Du definierst eine Sammlung manuell, bevor du sie verwendest, oft um erweiterte Einstellungen wie Validierungsregeln, begrenzte Größe oder Indizierung zu konfigurieren. Dies wird für Produktionsumgebungen empfohlen. 

Wann sollte ich eine Sammlung explizit anlegen, anstatt sie automatisch von MongoDB erstellen zu lassen?

Du solltest explizit eine Sammlung erstellen, wenn: Schema-Validierung, gekappte Sammlungen, Leistungsoptimierungen und Standard-Indizes.

Wie erzwinge ich ein Schema in MongoDB, wenn es schema-los ist?

MongoDB unterstützt die JSON-Schema-Validierung, mit der du Regeln für die Dokumentstruktur festlegen kannst.

Was sind gedeckelte Sammlungen, und wann sollte ich sie nutzen?

Capped Collections sind Sammlungen mit fester Größe, die alte Dokumente automatisch überschreiben, wenn sie voll sind. 

Wie erstelle ich eine Sammlung mit einem TTL-Index (Time-To-Live)?

TTL-Indizes löschen Dokumente automatisch nach einer bestimmten Zeit. Erstelle zuerst die Sammlung und füge dann den Index hinzu.


Luce Carter's photo
Author
Luce Carter
LinkedIn

Luce Carter ist Senior Developer Advocate bei MongoDB, Microsoft MVP, Contentful Dev Hero, Autor von Beginning MongoDB Atlas with .NET und Liebhaber von Code, Sonne und Lernen.

Themen

Lerne mehr über MongoDB mit diesen Kursen!

Kurs

Introduction to MongoDB in Python

4 Std.
21.8K
Learn to manipulate and analyze flexibly structured data with MongoDB.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Mehr anzeigenMehr anzeigen