Établir des relations entre documents
Dans cette première étape, vous allez créer deux collections distinctes et établir une relation entre elles. Nous allons modéliser un scénario courant : une base de données de bibliothèque avec des auteurs (authors) et des livres (books). Chaque livre référencera son auteur.
Tout d'abord, ouvrez le MongoDB Shell. Cette interface interactive en ligne de commande vous permet d'interagir avec votre instance MongoDB.
mongosh
Une fois dans le shell, vous verrez une invite test>. Passons à une nouvelle base de données nommée library_database. Si la base de données n'existe pas, MongoDB la créera pour vous lorsque vous stockerez des données pour la première fois.
use library_database
Maintenant, créons la collection authors en insérant deux documents. Chaque document possède un _id unique de type ObjectId, que nous utiliserons pour le référencement.
db.authors.insertMany([
{
_id: ObjectId("660a1f5c9b8f8b1234567890"),
name: "Jane Austen",
nationality: "British"
},
{
_id: ObjectId("660a1f5c9b8f8b1234567891"),
name: "George Orwell",
nationality: "British"
}
]);
Vous devriez voir une confirmation que les documents ont été insérés avec succès.
Exemple de sortie :
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660a1f5c9b8f8b1234567890"),
"1": ObjectId("660a1f5c9b8f8b1234567891")
}
}
Ensuite, créez la collection books. Dans chaque document de livre, le champ author_id stockera l'ObjectId de l'auteur correspondant de la collection authors. Cela crée le lien entre un livre et son auteur.
db.books.insertMany([
{
title: "Pride and Prejudice",
author_id: ObjectId("660a1f5c9b8f8b1234567890"),
year: 1813
},
{
title: "1984",
author_id: ObjectId("660a1f5c9b8f8b1234567891"),
year: 1949
}
]);
Exemple de sortie :
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660b2a1c9b8f8b1234567892"),
"1": ObjectId("660b2a1c9b8f8b1234567893")
}
}
Vous avez maintenant créé avec succès deux collections et lié des documents de la collection books à des documents de la collection authors. Gardez le shell MongoDB ouvert pour la prochaine étape.