MongoDB Créer une collection

Dans ce chapitre, nous allons présenter comment utiliser MongoDB pour créer des collections.

Dans MongoDB, utilisez la méthodecreateCollection()pour créer une collection.

Format de syntaxe:

db.createCollection(name, options)

Description du paramètre :

  • name: Le nom de la collection à créer.
  • options: Paramètres facultatifs, spécifiant des options concernant la taille de mémoire et les index.

options peuvent être les paramètres suivants:

Nom du paramètreTypeDescriptionValeur d'exemple
cappedBooleanIndique s'il faut créer une collection plafonnée.true
sizeNumberLa taille maximale de la collection (en octets). Valide uniquement lorsquecappedest true.10485760 (10MB)
maxNumberLe nombre maximal de documents autorisés dans la collection. Valide uniquement lorsquecappedest true.5000
validatorObjectExpression utilisée pour la validation des documents.{ $jsonSchema: { ... }}
validationLevelStringSpécifie le niveau de rigueur de la validation des documents.
"off": Aucune validation.
"strict": Les opérations d'insertion et de mise à jour doivent toutes deux passer la validation (par défaut).
"moderate": Seules les mises à jour de documents existants doivent passer la validation ; les insertions de nouveaux documents n'ont pas à le faire.
"strict"
validationActionStringSpécifie l'action à effectuer lorsque la validation des documents échoue.
"error": Bloque l'insertion ou la mise à jour (par défaut).
"warn": permet l'insertion ou la mise à jour, mais émet un avertissement.
"error"
storageEngineObjectSpécifie la configuration du moteur de stockage pour la collection.{ wiredTiger: { ... }}
collationObjectSpécifie la collation par défaut pour la collection.{ locale: "en", strength: 2 }

Lors de l'insertion de documents, MongoDB vérifie d'abord le champ size de la collection plafonnée, puis le champ max.

Un exemple de création d'une collection à l'aide de ces options :

Exemple

db.createCollection("myComplexCollection", {
  capped: true,
  size: 10485760,
  max: 5000,
  validator: { $jsonSchema: {
    bsonType: "object",
    required: ["name", "email"],
    properties: {
      name: {
        bsonType: "string",
        description: "Doit être une chaîne de caractères et est obligatoire"
      },
      email: {
        bsonType: "string",
        pattern: "^.+@.+$",
        description: "Doit être une adresse e-mail valide"
      }
    }
  }},
  validationLevel: "strict",
  validationAction: "error",
  storageEngine: {
    wiredTiger: { configString: "block_compressor=zstd" }
  },
  collation: { locale: "en", strength: 2 }
});

Cet exemple crée une collection avec les caractéristiques suivantes :

  • Plafonnée, maximum 10MB, peut stocker jusqu'à 5000 documents.
  • Les documents doivent contenirnameetemailchamps, oùnamedoit être une chaîne de caractères,emaildoit être un format d'e-mail valide.
  • Le niveau de validation est strict ; un échec de validation bloquera l'insertion ou la mise à jour.
  • Utilise le moteur de stockage WiredTiger, avec le compresseur de blocs défini sur zstd.
  • Utilise la collation anglaise par défaut.

Exemple

Créez la collection d'exemple dans la base de données test :

> use test
switched to db test
> db.createCollection("example")
{ "ok" : 1 }
>

Pour afficher les collections existantes, vous pouvez utiliser la commandeshow collectionsoushow tables:

> show collections
example
system.indexes

Voici l'utilisation de createCollection() avec plusieurs paramètres clés :

Création d'une collection plafonnée avec une taille maximale de 5MB (5,242,880 bytes) et jusqu'à 5,000 documents.

db.createCollection("myCappedCollection", { capped: true, size: 5242880, max: 5000 });

Dans MongoDB, vous n'avez pas besoin de créer une collection. Lorsque vous insérez des documents, MongoDB crée automatiquement la collection.

> db.mycol2.insert({"name" : "Example"})
> show collections
mycol2
...

Création d'une collection plafonnée avec une taille maximale de 1MB (1,048,576 bytes) :

db.createCollection("myCappedCollection", { capped: true, size: 1048576 });

L'exemple suivant crée un validateur pour la collection myCollection, exigeant que les documents aient des champs name et age, que name soit une chaîne de caractères et que age soit un entier non négatif.

Exemple

db.createCollection("myCollection", {
  validator: { $jsonSchema: {
    bsonType: "object",
    required: ["name", "age"],
    properties: {
      name: {
        bsonType: "string",
        description: "Doit être une chaîne de caractères et est obligatoire"
      },
      age: {
        bsonType: "int",
        minimum: 0,
        description: "Doit être un entier et est requis"
      }
    }
  }}
});
Autres extensions