MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Създайте колекция в MongoDB

Когато създавате база данни в 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 за подробно обяснение на всяка опция.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. В Mongo каква е разликата между разделяне и репликация?

  2. mongoexport E QUERY SyntaxError:Неочакван идентификатор

  3. Поддокумент за намиране/актуализиране на Mongoose

  4. Пролетните данни mongo използват ИЛИ в заявка

  5. MongoDB Regex, индекс и производителност