När du skapar en databas i MongoDB är din databas i princip en tom behållare som du kan lägga till en eller flera samlingar till.
En samling är analog med en tabell i relationsdatabaser.
I relationsdatabaser kan du använda CREATE TABLE
för att skapa varje tabell som du vill ha i databasen.
Men MongoDB är inte en relationsdatabas, och den lagrar sina data som dokument. Varje dokument lagras i en samling.
Den här artikeln visar hur du skapar en samling i MongoDB.
Två alternativ
Du har två alternativ för att skapa samlingar i MongoDB:
- Underförstått
- Explicit
Här är ett exempel på var och en.
Skapa en samling – implicit
Du kan skapa en samling implicit genom att helt enkelt lägga till ett dokument till en obefintlig samling. När du gör detta skapas samlingen om den inte redan finns.
Här är ett exempel på att implicit skapa en samling:
db.pets.insert({ name: "Fetch" })
Det skapar en samling som heter husdjur
, och infogar ett dokument i det.
Egentligen skapar den bara samlingen om den inte redan finns. Om det redan finns infogar det helt enkelt dokumentet i den befintliga samlingen med det namnet.
I grund och botten ser syntaxen ut så här:
db.<collection>.insert()
Där
Skapa en samling – uttryckligen
Du kan också skapa samlingar explicit med db.createCollection()
metod. Den här metoden låter dig ange olika alternativ, som att ställa in den maximala storleken eller reglerna för dokumentationsvalidering.
Detta är ungefär analogt med CREATE TABLE
uttalande i SQL. Med det sagt kräver MongoDB inte att du anger kolumner, datatyper etc som du skulle behöva specificera med CREATE TABLE
uttalande när du använder en relationsdatabas.
Här är ett exempel på hur du använder db.createCollection()
metod för att skapa en samling:
db.createCollection("employees")
Resultat:
{ "ok" : 1 }
I det här exemplet angav jag inga alternativ. Därför fanns det ingen verklig fördel med att skapa den som de här verserna som skapade den implicit (som i föregående exempel).
Men om du vill ange alternativ för din samling är det rätt väg att skapa den uttryckligen.
Här är ett exempel på hur du anger några alternativ när du skapar en samling:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
Resultat:
{ "ok" : 1 }
Här är en förklaring av alternativen jag gav i det här exemplet:
- Den
begränsade
argument låter dig specificera om samlingens storlek ska begränsas eller inte (dvs. inte tillåts växa utöver en viss storlek). Om du angertrue
måste du också ange en maximal storlek istorlek
fältet. storleken
argument anger en maximal storlek i byte för en begränsad samling. När en begränsad samling når sin maximala storlek tar MongoDB bort de äldre dokumenten för att göra plats åt de nya dokumenten.storlek
fältet krävs för samlingar med tak och ignoreras för andra samlingar.max
argument låter dig ange det maximala antalet dokument som tillåts i den begränsade samlingen. Om en begränsad samling nårstorleken
gräns innan det når det maximala antalet dokument, tar MongoDB bort gamla dokument. Se därför till attstorlek
argumentet är tillräckligt för att innehålla antalet dokument som anges medmax
argument.
Det här är tre av de olika alternativen som du kan ange med db.createCollection()
metod.
Syntax och fler detaljer
Hela syntaxen (när detta skrivs) ser ut så här:
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()
från den officiella MongoDB-dokumentationen för en detaljerad förklaring av varje alternativ.