Kiedy tworzysz bazę danych w MongoDB, twoja baza danych jest w zasadzie pustym kontenerem, do którego możesz dodać jedną lub więcej kolekcji.
Kolekcja jest analogiczna do tabeli w relacyjnych bazach danych.
W relacyjnych bazach danych możesz użyć CREATE TABLE
aby utworzyć każdą tabelę, którą chcesz w bazie danych.
Ale MongoDB nie jest relacyjną bazą danych i przechowuje swoje dane jako dokumenty. Każdy dokument jest przechowywany w kolekcji.
W tym artykule dowiesz się, jak utworzyć kolekcję w MongoDB.
Dwie opcje
Masz dwie opcje tworzenia kolekcji w MongoDB:
- Niejawne
- Wyraźne
Oto przykład każdego z nich.
Utwórz kolekcję – niejawnie
Kolekcję można utworzyć niejawnie, po prostu dodając dokument do nieistniejącej kolekcji. Gdy to zrobisz, kolekcja zostanie utworzona, jeśli jeszcze nie istnieje.
Oto przykład niejawnego tworzenia kolekcji:
db.pets.insert({ name: "Fetch" })
Tworzy to kolekcję o nazwie pets
i wstawia do niego dokument.
W rzeczywistości tworzy kolekcję tylko wtedy, gdy jeszcze nie istnieje. Jeśli już istnieje, po prostu wstawia dokument do istniejącej kolekcji o tej nazwie.
Zasadniczo składnia wygląda tak:
db.<collection>.insert()
Gdzie
Utwórz kolekcję – jawnie
Możesz także tworzyć kolekcje jawnie za pomocą db.createCollection()
metoda. Ta metoda pozwala określić różne opcje, takie jak ustawienie maksymalnego rozmiaru lub zasady walidacji dokumentacji.
Jest to trochę analogiczne do CREATE TABLE
instrukcja w języku SQL. Powiedziawszy to, MongoDB nie wymaga określania kolumn, typów danych itp., tak jak trzeba by określić za pomocą CREATE TABLE
oświadczenie podczas korzystania z relacyjnej bazy danych.
Oto przykład użycia db.createCollection()
metoda tworzenia kolekcji:
db.createCollection("employees")
Wynik:
{ "ok" : 1 }
W tym przykładzie nie określiłem żadnych opcji. Dlatego nie było żadnej rzeczywistej korzyści z tworzenia tego w taki sposób, jak ten werset, tworząc go niejawnie (jak w poprzednim przykładzie).
Jeśli jednak chcesz określić opcje dla swojej kolekcji, to jawne jej utworzenie jest najlepszym rozwiązaniem.
Oto przykład określenia niektórych opcji podczas tworzenia kolekcji:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
Wynik:
{ "ok" : 1 }
Oto wyjaśnienie opcji, które podałem w tym przykładzie:
ograniczony
argument pozwala określić, czy rozmiar kolekcji powinien być ograniczony (tj. Nie może przekroczyć określonego rozmiaru). Jeśli określisztrue
, musisz także ustawić maksymalny rozmiar wrozmiar
pole.rozmiar
argument ustawia maksymalny rozmiar w bajtach dla ograniczonej kolekcji. Gdy ograniczona kolekcja osiągnie maksymalny rozmiar, MongoDB usuwa starsze dokumenty, aby zrobić miejsce na nowe dokumenty.rozmiar
pole jest wymagane w przypadku kolekcji ograniczonych i ignorowane w przypadku innych kolekcji.maks
argument pozwala określić maksymalną liczbę dokumentów dozwolonych w ograniczonej kolekcji. Jeśli ograniczona kolekcja osiągnierozmiar
limit zanim osiągnie maksymalną liczbę dokumentów, MongoDB usuwa stare dokumenty. Dlatego upewnij się, żerozmiar
argument jest wystarczający, aby zawierać liczbę dokumentów określoną przezmax
argument.
Oto trzy różne opcje, które można określić za pomocą db.createCollection()
metoda.
Składnia i więcej szczegółów
Pełna składnia (w chwili pisania tego tekstu) wygląda tak:
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>
}
)
Zobacz db.createCollection()
z oficjalnej dokumentacji MongoDB, aby uzyskać szczegółowe wyjaśnienie każdej opcji.