Když vytvoříte databázi v MongoDB, vaše databáze je v podstatě prázdný kontejner, do kterého můžete přidat jednu nebo více kolekcí.
Kolekce je analogická tabulce v relačních databázích.
V relačních databázích můžete použít CREATE TABLE vytvořit každou tabulku, kterou chcete v databázi.
MongoDB ale není relační databáze a svá data ukládá jako dokumenty. Každý dokument je uložen ve sbírce.
Tento článek ukazuje, jak vytvořit kolekci v MongoDB.
Dvě možnosti
Pro vytváření kolekcí v MongoDB máte dvě možnosti:
- Implicitní
- Explicitní
Zde je příklad každého z nich.
Vytvořit sbírku – implicitně
Kolekci můžete vytvořit implicitně jednoduchým přidáním dokumentu do neexistující kolekce. Když to uděláte, sbírka se vytvoří, pokud ještě neexistuje.
Zde je příklad implicitního vytvoření kolekce:
db.pets.insert({ name: "Fetch" })
Tím se vytvoří sbírka nazvaná pets a vloží do něj dokument.
Ve skutečnosti sbírku vytvoří, pouze pokud ještě neexistuje. Pokud již existuje, pak jednoduše vloží dokument do existující kolekce s tímto názvem.
V podstatě syntaxe vypadá takto:
db.<collection>.insert()
Kde <collection> je název kolekce.
Vytvořit sbírku – explicitně
Kolekce můžete také vytvářet explicitně pomocí db.createCollection() metoda. Tato metoda umožňuje zadat různé možnosti, jako je nastavení maximální velikosti nebo pravidla ověřování dokumentace.
Je to něco podobného jako CREATE TABLE příkaz v SQL. Nicméně MongoDB nevyžaduje, abyste specifikovali sloupce, datové typy atd., jako byste museli zadat pomocí CREATE TABLE při použití relační databáze.
Zde je příklad použití db.createCollection() způsob vytvoření kolekce:
db.createCollection("employees") Výsledek:
{ "ok" : 1 } V tomto příkladu jsem nespecifikoval žádné možnosti. Proto nemělo žádný skutečný užitek z toho, že to vytvoříte jako tyto verše, když to vytvoříte implicitně (jako v předchozím příkladu).
Pokud však chcete určit možnosti pro svou sbírku, pak je správnou cestou její explicitní vytvoření.
Zde je příklad zadání některých možností při vytváření kolekce:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
) Výsledek:
{ "ok" : 1 } Zde je vysvětlení možností, které jsem uvedl v tomto příkladu:
cappedargument umožňuje určit, zda má být velikost kolekce omezena (tj. nesmí přesáhnout určitou velikost). Pokud zadátetrue, musíte také nastavit maximální velikost vsizepole.sizeargument nastavuje maximální velikost v bajtech pro omezenou kolekci. Jakmile omezená kolekce dosáhne své maximální velikosti, MongoDB odstraní starší dokumenty, aby se uvolnilo místo pro nové dokumenty.sizepole je povinné pro omezené kolekce a ignorováno pro ostatní kolekce.maxargument umožňuje zadat maximální počet dokumentů povolených v omezené kolekci. Pokud omezená sbírka dosáhnesizenež dosáhne maximálního počtu dokumentů, MongoDB odstraní staré dokumenty. Ujistěte se proto, žesizeargument je dostatečný k tomu, aby obsahoval počet dokumentů zadaný pomocímaxargument.
Toto jsou tři různé možnosti, které můžete zadat pomocí db.createCollection() metoda.
Syntaxe a další podrobnosti
Úplná syntaxe (v době psaní tohoto článku) vypadá takto:
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>
}
)
Viz db.createCollection() z oficiální dokumentace MongoDB, kde najdete podrobné vysvětlení každé možnosti.