sql >> Database teknologi >  >> NoSQL >> MongoDB

Opret en samling i MongoDB

Når du opretter en database i MongoDB, er din database dybest set en tom container, som du kan tilføje en eller flere samlinger til.

En samling er analog med en tabel i relationelle databaser.

I relationelle databaser kan du bruge CREATE TABLE for at oprette hver tabel, du ønsker i databasen.

Men MongoDB er ikke en relationel database, og den gemmer sine data som dokumenter. Hvert dokument er gemt i en samling.

Denne artikel viser dig, hvordan du opretter en samling i MongoDB.

To muligheder

Du har to muligheder for at oprette samlinger i MongoDB:

  • Implicit
  • Eksplicit

Her er et eksempel på hver enkelt.

Opret en samling – implicit

Du kan oprette en samling implicit ved blot at tilføje et dokument til en ikke-eksisterende samling. Når du gør dette, oprettes samlingen, hvis den ikke allerede eksisterer.

Her er et eksempel på implicit oprettelse af en samling:

db.pets.insert({ name: "Fetch" })

Det skaber en samling kaldet kæledyr , og indsætter et dokument i det.

Faktisk opretter den kun samlingen, hvis den ikke allerede eksisterer. Hvis det allerede eksisterer, indsætter det blot dokumentet i den eksisterende samling med det navn.

Grundlæggende går syntaksen sådan her:

db.<collection>.insert()

Hvor er navnet på samlingen.

Opret en samling – eksplicit

Du kan også oprette samlinger eksplicit med db.createCollection() metode. Denne metode giver dig mulighed for at angive forskellige muligheder, såsom indstilling af den maksimale størrelse eller reglerne for dokumentationsvalidering.

Dette er lidt analogt med CREATE TABLE sætning i SQL. Når det er sagt, kræver MongoDB ikke, at du angiver kolonner, datatyper osv., som du skal angive med CREATE TABLE sætning ved brug af en relationsdatabase.

Her er et eksempel på brug af db.createCollection() metode til at oprette en samling:

db.createCollection("employees")

Resultat:

{ "ok" : 1 } 

I dette eksempel har jeg ikke angivet nogen muligheder. Derfor var der ingen reel fordel ved at skabe det som disse vers, der skaber det implicit (som i det forrige eksempel).

Men hvis du ønsker at angive muligheder for din samling, så er det eksplicit at oprette den.

Her er et eksempel på at angive nogle muligheder, når du opretter en samling:

db.createCollection(
    "products", 
    { 
        capped : true, 
        size : 7500500, 
        max : 7000 
    } 
)

Resultat:

{ "ok" : 1 } 

Her er en forklaring på de muligheder, jeg gav i dette eksempel:

  • Den capped argument giver dig mulighed for at angive, om samlingens størrelse skal begrænses (dvs. ikke må vokse ud over en vis størrelse). Hvis du angiver true , skal du også angive en maksimal størrelse i størrelse felt.
  • størrelsen argument angiver en maksimal størrelse i bytes for en begrænset samling. Når en begrænset samling når sin maksimale størrelse, fjerner MongoDB de ældre dokumenter for at gøre plads til de nye dokumenter. størrelsen felt er påkrævet for begrænsede samlinger og ignoreres for andre samlinger.
  • maks. argument giver dig mulighed for at angive det maksimale antal dokumenter, der er tilladt i den begrænsede samling. Hvis en begrænset samling når størrelsen grænse, før det når det maksimale antal dokumenter, fjerner MongoDB gamle dokumenter. Sørg derfor for, at størrelse argumentet er tilstrækkeligt til at indeholde antallet af dokumenter angivet med max argument.

Dette er tre af de forskellige muligheder, som du kan angive med db.createCollection() metode.

Syntaks og flere detaljer

Den fulde syntaks (som i skrivende stund) ser sådan ud:

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>
   }
)

Se db.createCollection() fra den officielle MongoDB-dokumentation for en detaljeret forklaring af hver mulighed.


  1. Redis pub/sub til chatserver i node.js

  2. Flask-SocketIO abonnerer igen

  3. Sådan bruger du MongoDB Stitch i Android-apps

  4. Redis - Hvordan er nøglen HASH og SET og ZSET relateret på CrudRepository saven?