Когато създавате база данни в MongoDB, вашата база данни е по същество празен контейнер, към който можете да добавите една или повече колекции.
Колекцията е аналогична на таблица в релационни бази данни.
В релационни бази данни можете да използвате CREATE TABLE
за да създадете всяка таблица, която искате в базата данни.
Но MongoDB не е релационна база данни и съхранява данните си като документи. Всеки документ се съхранява в колекция.
Тази статия ви показва как да създадете колекция в MongoDB.
Две опции
Имате две опции за създаване на колекции в MongoDB:
- Неявно
- Недвусмислено
Ето пример за всеки от тях.
Създаване на колекция – имплицитно
Можете да създадете колекция имплицитно, като просто добавите документ към несъществуваща колекция. Когато направите това, колекцията се създава, ако все още не съществува.
Ето пример за имплицитно създаване на колекция:
db.pets.insert({ name: "Fetch" })
Това създава колекция, наречена pets
и вмъква документ в него.
Всъщност той създава колекцията само ако тя все още не съществува. Ако вече съществува, той просто вмъква документа в съществуващата колекция с това име.
По принцип синтаксисът е така:
db.<collection>.insert()
Където <collection>
е името на колекцията.
Създаване на колекция – изрично
Можете също така изрично да създавате колекции с db.createCollection()
метод. Този метод ви позволява да зададете различни опции, като например задаване на максимален размер или правилата за валидиране на документацията.
Това е нещо подобно на CREATE TABLE
изявление в SQL. Като каза това, MongoDB не изисква да посочите колони, типове данни и т.н., както трябва да посочите с CREATE TABLE
изявление при използване на релационна база данни.
Ето пример за използване на db.createCollection()
метод за създаване на колекция:
db.createCollection("employees")
Резултат:
{ "ok" : 1 }
В този пример не посочих никакви опции. Следователно нямаше реална полза от създаването му като тези стихове, създавайки го имплицитно (както в предишния пример).
Въпреки това, ако искате да посочите опции за вашата колекция, тогава изричното й създаване е начинът.
Ето пример за посочване на някои опции при създаване на колекция:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
Резултат:
{ "ok" : 1 }
Ето обяснение на опциите, които предоставих в този пример:
capped
Аргументът ви позволява да укажете дали размерът на колекцията трябва да бъде ограничен (т.е. да не се позволява да нараства извън определен размер). Ако посочитеtrue
, трябва също да зададете максимален размер вsize
поле.size
аргумент задава максимален размер в байтове за ограничена колекция. След като ограничена колекция достигне максималния си размер, MongoDB премахва по-старите документи, за да освободи място за новите документи.size
полето е задължително за ограничени колекции и се игнорира за други колекции.max
аргумент ви позволява да посочите максималния брой документи, позволени в ограничената колекция. Ако ограничена колекция достигнеsize
ограничение, преди да достигне максималния брой документи, MongoDB премахва старите документи. Затова се уверете, чеsize
Аргументът е достатъчен, за да съдържа броя документи, посочени сmax
аргумент.
Това са три от различните опции, които можете да посочите с db.createCollection()
метод.
Синтаксис и повече подробности
Пълният синтаксис (към момента на писане) изглежда така:
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>
}
)
Вижте db.createCollection()
от официалната документация на MongoDB за подробно обяснение на всяка опция.