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ètre | Type | Description | Valeur d'exemple |
|---|---|---|---|
capped | Boolean | Indique s'il faut créer une collection plafonnée. | true |
size | Number | La taille maximale de la collection (en octets). Valide uniquement lorsquecappedest true. | 10485760 (10MB) |
max | Number | Le nombre maximal de documents autorisés dans la collection. Valide uniquement lorsquecappedest true. | 5000 |
validator | Object | Expression utilisée pour la validation des documents. | { $jsonSchema: { ... }} |
validationLevel | String | Spé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" |
validationAction | String | Spé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" |
storageEngine | Object | Spécifie la configuration du moteur de stockage pour la collection. | { wiredTiger: { ... }} |
collation | Object | Spé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
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 contenir
nameetemailchamps, 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
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"
}
}
}}
});