MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Créer une collection dans MongoDB

Lorsque vous créez une base de données dans MongoDB, votre base de données est essentiellement un conteneur vide auquel vous pouvez ajouter une ou plusieurs collections.

Une collection est analogue à une table dans les bases de données relationnelles.

Dans les bases de données relationnelles, vous pouvez utiliser CREATE TABLE pour créer chaque table que vous voulez dans la base de données.

Mais MongoDB n'est pas une base de données relationnelle et stocke ses données sous forme de documents. Chaque document est stocké dans une collection.

Cet article vous montre comment créer une collection dans MongoDB.

Deux options

Vous avez deux options pour créer des collections dans MongoDB :

  • implicite
  • Explicit

Voici un exemple de chacun.

Créer une collection - implicitement

Vous pouvez créer une collection implicitement en ajoutant simplement un document à une collection inexistante. Lorsque vous faites cela, la collection est créée si elle n'existe pas déjà.

Voici un exemple de création implicite d'une collection :

db.pets.insert({ name: "Fetch" })

Cela crée une collection appelée pets , et y insère un document.

En fait, il ne crée la collection que si elle n'existe pas déjà. S'il existe déjà, il insère simplement le document dans la collection existante de ce nom.

En gros, la syntaxe ressemble à ceci :

db.<collection>.insert()

<collection> est le nom de la collection.

Créer une collection - Explicitement

Vous pouvez également créer des collections explicitement avec le db.createCollection() méthode. Cette méthode vous permet de spécifier diverses options, telles que la définition de la taille maximale ou les règles de validation de la documentation.

C'est un peu analogue au CREATE TABLE instruction en SQL. Cela dit, MongoDB n'exige pas que vous spécifiiez des colonnes, des types de données, etc. comme vous auriez besoin de le spécifier avec le CREATE TABLE lors de l'utilisation d'une base de données relationnelle.

Voici un exemple d'utilisation de db.createCollection() méthode pour créer une collection :

db.createCollection("employees")

Résultat :

{ "ok" : 1 } 

Dans cet exemple, je n'ai spécifié aucune option. Par conséquent, il n'y avait aucun avantage réel à le créer comme ce verset en le créant implicitement (comme dans l'exemple précédent).

Cependant, si vous souhaitez spécifier des options pour votre collection, la création explicite est la solution.

Voici un exemple de spécification de certaines options lors de la création d'une collection :

db.createCollection(
    "products", 
    { 
        capped : true, 
        size : 7500500, 
        max : 7000 
    } 
)

Résultat :

{ "ok" : 1 } 

Voici une explication des options que j'ai fournies dans cet exemple :

  • Le capped L'argument vous permet de spécifier si la taille de la collection doit être plafonnée ou non (c'est-à-dire qu'elle ne doit pas dépasser une certaine taille). Si vous spécifiez true , vous devez également définir une taille maximale dans le champ size champ.
  • La size L'argument définit une taille maximale en octets pour une collection limitée. Une fois qu'une collection plafonnée atteint sa taille maximale, MongoDB supprime les anciens documents pour faire de la place aux nouveaux documents. La size champ est obligatoire pour les collections plafonnées et ignoré pour les autres collections.
  • Le max L'argument vous permet de spécifier le nombre maximum de documents autorisés dans la collection limitée. Si une collection plafonnée atteint la size limite avant d'atteindre le nombre maximum de documents, MongoDB supprime les anciens documents. Par conséquent, assurez-vous que la size l'argument est suffisant pour contenir le nombre de documents spécifié avec le max arguments.

Ce sont trois des différentes options que vous pouvez spécifier avec le db.createCollection() méthode.

Syntaxe et plus de détails

La syntaxe complète (à ce jour) ressemble à ceci :

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>
   }
)

Voir db.createCollection() de la documentation officielle de MongoDB pour une explication détaillée de chaque option.