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
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 angivertrue
, skal du også angive en maksimal størrelse istø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årstørrelsen
grænse, før det når det maksimale antal dokumenter, fjerner MongoDB gamle dokumenter. Sørg derfor for, atstørrelse
argumentet er tilstrækkeligt til at indeholde antallet af dokumenter angivet medmax
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.