Wenn Sie eine Datenbank in MongoDB erstellen, ist Ihre Datenbank im Grunde ein leerer Container, dem Sie eine oder mehrere Sammlungen hinzufügen können.
Eine Sammlung ist analog zu einer Tabelle in relationalen Datenbanken.
In relationalen Datenbanken können Sie CREATE TABLE
verwenden um jede gewünschte Tabelle in der Datenbank zu erstellen.
Aber MongoDB ist keine relationale Datenbank und speichert ihre Daten als Dokumente. Jedes Dokument wird in einer Sammlung gespeichert.
Dieser Artikel zeigt Ihnen, wie Sie eine Sammlung in MongoDB erstellen.
Zwei Optionen
Sie haben zwei Möglichkeiten zum Erstellen von Sammlungen in MongoDB:
- Implizit
- Explizit
Hier ist jeweils ein Beispiel.
Erstellen Sie eine Sammlung – implizit
Sie können eine Sammlung implizit erstellen, indem Sie einfach ein Dokument zu einer nicht vorhandenen Sammlung hinzufügen. Wenn Sie dies tun, wird die Sammlung erstellt, falls sie noch nicht vorhanden ist.
Hier ist ein Beispiel für das implizite Erstellen einer Sammlung:
db.pets.insert({ name: "Fetch" })
Dadurch wird eine Sammlung namens pets
erstellt , und fügt ein Dokument darin ein.
Tatsächlich erstellt es die Sammlung nur, wenn sie noch nicht existiert. Wenn es bereits existiert, fügt es das Dokument einfach in die bestehende Sammlung dieses Namens ein.
Im Grunde geht die Syntax so:
db.<collection>.insert()
Wobei <collection>
ist der Name der Sammlung.
Erstellen Sie eine Sammlung – ausdrücklich
Sie können Sammlungen auch explizit mit db.createCollection()
erstellen Methode. Mit dieser Methode können Sie verschiedene Optionen angeben, z. B. das Festlegen der maximalen Größe oder der Dokumentationsvalidierungsregeln.
Dies ist in gewisser Weise analog zu CREATE TABLE
Anweisung in SQL. Allerdings erfordert MongoDB nicht, dass Sie Spalten, Datentypen usw. angeben, wie Sie es mit CREATE TABLE
angeben müssten Anweisung bei Verwendung einer relationalen Datenbank.
Hier ist ein Beispiel für die Verwendung von db.createCollection()
Methode zum Erstellen einer Sammlung:
db.createCollection("employees")
Ergebnis:
{ "ok" : 1 }
In diesem Beispiel habe ich keine Optionen angegeben. Daher hatte es keinen wirklichen Vorteil, es so zu erstellen, wie es implizit erstellt wurde (wie im vorherigen Beispiel).
Wenn Sie jedoch Optionen für Ihre Sammlung angeben möchten, ist die explizite Erstellung der Sammlung der richtige Weg.
Hier ist ein Beispiel für die Angabe einiger Optionen beim Erstellen einer Sammlung:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
Ergebnis:
{ "ok" : 1 }
Hier ist eine Erklärung der Optionen, die ich in diesem Beispiel bereitgestellt habe:
- Der
capped
Mit dem Argument können Sie angeben, ob die Größe der Sammlung begrenzt werden soll (d. h. nicht über eine bestimmte Größe hinaus wachsen darf). Wenn Sietrue
angeben , müssen Sie auch eine maximale Größe insize
festlegen Feld. - Die
size
Das Argument legt eine maximale Größe in Bytes für eine begrenzte Sammlung fest. Sobald eine begrenzte Sammlung ihre maximale Größe erreicht, entfernt MongoDB die älteren Dokumente, um Platz für die neuen Dokumente zu schaffen. Diesize
Das Feld ist für begrenzte Sammlungen erforderlich und wird für andere Sammlungen ignoriert. - Das
max
Mit dem Argument können Sie die maximale Anzahl von Dokumenten angeben, die in der begrenzten Sammlung zulässig sind. Wenn eine begrenzte Sammlung diesize
erreicht limit, bevor die maximale Anzahl an Dokumenten erreicht wird, entfernt MongoDB alte Dokumente. Stellen Sie daher sicher, dass diesize
-Argument reicht aus, um die mitmax
angegebene Anzahl von Dokumenten aufzunehmen Argument.
Dies sind drei der verschiedenen Optionen, die Sie mit db.createCollection()
angeben können Methode.
Syntax und weitere Details
Die vollständige Syntax (zum Zeitpunkt dieses Schreibens) sieht folgendermaßen aus:
db.createCollection( <name>,
{
capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,
writeConcern: <document>
}
)
Siehe db.createCollection()
aus der offiziellen MongoDB-Dokumentation für eine detaillierte Erklärung jeder Option.