MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Erstellen Sie eine Sammlung in MongoDB

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 Sie true angeben , müssen Sie auch eine maximale Größe in size 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. Die size 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 die size erreicht limit, bevor die maximale Anzahl an Dokumenten erreicht wird, entfernt MongoDB alte Dokumente. Stellen Sie daher sicher, dass die size -Argument reicht aus, um die mit max 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.