Du kan oprette en samling ved hjælp af createCollection()
metode, eller på farten, mens du indsætter et dokument.
Samlinger er som beholdere til relaterede dokumenter. De bruges typisk til at gruppere dokumenter om et lignende emne. For eksempel kan du have samlingsnavne såsom
brugere
, pageviews
, posts
, comments
osv.
Da vi oprettede vores database, lavede vi en samling kaldet kunstnere . Denne samling vil indeholde dokumenter med kunstnerdetaljer, såsom kunstnernes navne, albums, de har udgivet osv.
To måder at oprette en samling på
Her er to måder at oprette samlinger på:
- Du kan oprette en samling med det samme, når du indsætter et dokument (ved hjælp af
insert()
metode. - Du kan også oprette en samling eksplicit ved at bruge
createCollection()
metode.
On the Fly
Når du bruger insert()
metode til at indsætte et dokument, angiver du den samling, som dokumentet skal indsættes i. Hvis samlingen ikke allerede eksisterer, oprettes den.
Dette er den metode, vi tidligere brugte, da vi skabte vores artists
samling, mens du indsætter et dokument.
Her er koden, vi brugte:
db.artists.insert({ artistname: "The Tea Party" })
I dette tilfælde er artists
samling eksisterede ikke tidligere, så den blev oprettet til os.
Ved brug af createCollection()
Metode
Du kan også oprette samlinger ved hjælp af createCollection()
metode. Dette giver dig mulighed for at oprette en samling uden at indsætte et dokument.
Her er et eksempel på brug af createCollection()
metode:
db.createCollection("producers")
Med indstillinger
Du kan også angive indstillinger for samlingen ved at bruge db.createCollection(name, options)
syntaks.
Her er et eksempel:
db.createCollection("log", { capped : true, size : 4500500, max : 4000 } )
Felterne tilgængelige fra MongoDB version 3.2 er som følger.
Felt | Typ | Beskrivelse | ||||||
---|---|---|---|---|---|---|---|---|
capped | boolesk | Når indstillet til true , opretter en begrænset samling. En begrænset samling er en samling med fast størrelse, der automatisk overskriver sine ældste poster, når den når sin maksimale størrelse. Hvis du angiver true , skal du også angive en maksimal størrelse i size felt. | ||||||
autoIndexId | boolesk | Angiv false for at deaktivere den automatiske oprettelse af et indeks på _id Mark. Fra og med MongoDB version 3.2 er dette felt forældet, og det vil blive fjernet i version 3.4. | ||||||
size | nummer | Maksimal størrelse i bytes for en begrænset samling. Bruges kun med begrænsede samlinger (det ignoreres i andre samlinger). | ||||||
max | nummer | Maksimalt antal dokumenter tilladt i den begrænsede samling. Bemærk, at size feltet har forrang over max Mark. Hvis samlingen når sin størrelsesgrænse, før dokumentgrænsen er nået, vil MongoDB alligevel fjerne dokumenter. | ||||||
usePowerOf2Sizes | boolesk | Kun tilgængelig i MMAPv1-lagringsmotoren. Dette felt er blevet forældet siden version 3.0. | ||||||
noPadding | boolesk | Kun tilgængelig i MMAPv1-lagringsmotoren. Deaktiverer kraften ved tildeling af 2 størrelser til samlingen. Standard er false . | ||||||
storageEngine | dokument | Kun tilgængelig i WiredTiger-lagringsmotoren. Tillader konfiguration af lagermotoren pr. samling, når der oprettes en samling. Syntaks er som følger:{ <storage-engine-name>: <options> } | ||||||
validator | dokument | Giver dig mulighed for at angive valideringsregler eller udtryk for samlingen. Bemærk, at validering kun anvendes ved indsættelse og opdatering af data. Derfor bliver data, der allerede findes i databasen, ikke valideret (før de er opdateret). | ||||||
validationLevel | streng | Giver dig mulighed for at specificere, hvor strengt eventuelle valideringsregler anvendes på eksisterende dokumenter under en opdatering. Mulige værdier:
| ||||||
validationAction | streng | Specificerer, om der skal opstå en fejl, eller blot en advarsel, når ugyldige dokumenter indsættes. Hvis der opstår en fejl, vil de ugyldige dokumenter stadig blive indsat, men med en advarsel.
| ||||||
indexOptionDefaults | dokument | Giver dig mulighed for at angive en standardkonfiguration for indekser, når du opretter en samling. Accepterer en storageEngine dokument med følgende syntaks:{ |