Utiliser les types de base de MongoDB

MongoDBMongoDBBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à travailler avec différents types de données dans MongoDB, notamment les nombres, les chaînes de caractères, les booléens, les dates et les identifiants d'objet. Le laboratoire couvre des exemples pratiques sur la manière de stocker, interroger et manipuler des données de différents types dans votre base de données MongoDB. Vous acquerrez une expérience pratique en effectuant des opérations courantes et en comprenant les cas d'utilisation appropriés pour chaque type de données.

Le laboratoire est divisé en cinq étapes principales : travailler avec les nombres, gérer les données de type chaîne, utiliser les valeurs booléennes, stocker les dates et l'heure, et gérer les identifiants d'objet. Chaque étape propose une présentation détaillée, en démontrant les commandes MongoDB pertinentes et en mettant en évidence les caractéristiques et les applications uniques des types de données respectifs.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb(("MongoDB")) -.-> mongodb/DataTypesGroup(["Data Types"]) mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/BasicOperationsGroup -.-> mongodb/update_document("Update Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") mongodb/DataTypesGroup -.-> mongodb/use_numeric_data_types("Use Numeric Data Types") mongodb/DataTypesGroup -.-> mongodb/use_string_data_types("Use String Data Types") subgraph Lab Skills mongodb/insert_document -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} mongodb/update_document -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} mongodb/find_documents -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} mongodb/query_with_conditions -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} mongodb/use_numeric_data_types -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} mongodb/use_string_data_types -.-> lab-422097{{"Utiliser les types de base de MongoDB"}} end

Travailler avec les nombres

Dans cette étape, vous allez apprendre à travailler avec les types de données numériques dans MongoDB, en explorant différentes façons de stocker et de manipuler des nombres dans votre base de données.

Comprendre les types numériques dans MongoDB

MongoDB prend en charge plusieurs types de données numériques, y compris les entiers et les nombres à virgule flottante. Commençons par lancer le shell MongoDB et explorer ces types.

Tout d'abord, ouvrez votre terminal et lancez le shell MongoDB :

mongosh

Maintenant, créons une base de données et une collection pour démontrer les opérations numériques :

use numbers_lab
db.createCollection("products")

Insérer des nombres entiers et des nombres décimaux

Ajoutons quelques produits avec différents types numériques :

db.products.insertMany([
    {
        name: "Ordinateur portable",
        price: 999,           // Entier
        stock: 50,            // Entier
        discount: 0.1,        // Décimal
        rating: 4.5           // Nombre à virgule flottante
    },
    {
        name: "Téléphone intelligent",
        price: 599,
        stock: 100,
        discount: 0.15,
        rating: 4.7
    }
])

Exemple de sortie

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("...")
  }
}

Opérations numériques

MongoDB vous permet de réaliser diverses opérations numériques. Montrez-en quelques-unes :

// Trouvez les produits dont le prix est supérieur à 500
db.products.find({ price: { $gt: 500 } })

// Mettez à jour le stock en incrémentant
db.products.updateOne(
    { name: "Ordinateur portable" },
    { $inc: { stock: 10 } }
)

// Trouvez les produits dont la note est supérieure à 4
db.products.find({ rating: { $gte: 4 } })

Points clés à retenir

  • Les entiers sont des nombres entiers sans virgule décimale
  • Les nombres à virgule flottante peuvent avoir des décimales
  • MongoDB utilise $gt (supérieur à), $lt (inférieur à), $inc (incrémenter) pour les opérations numériques

Gérer les données de type chaîne

Dans cette étape, vous allez apprendre à travailler avec les types de données chaîne dans MongoDB, en explorant différentes façons de stocker, interroger et manipuler des données textuelles dans votre base de données.

Comprendre les types de chaîne dans MongoDB

MongoDB offre des capacités puissantes de manipulation de chaînes. Nous allons continuer à utiliser la base de données que nous avons créée dans l'étape précédente pour démontrer les opérations sur les chaînes.

Tout d'abord, assurez-vous d'être dans le shell MongoDB :

mongosh

Changez vers la base de données existante :

use numbers_lab

Insérer et interroger des données de type chaîne

Ajoutons plus de documents avec des champs de type chaîne :

db.products.insertMany([
    {
        name: "Casques sans fil",
        brand: "TechSound",
        description: "Casques sans fil à bruit cancelant de haute qualité",
        color: "Noir",
        tags: ["électronique", "audio", "sans fil"]
    },
    {
        name: "Montre intelligente",
        brand: "FitTech",
        description: "Montre intelligente pour le suivi de l'activité physique avancée",
        color: "Argent",
        tags: ["accessoires de mode", "fitness", "technologie"]
    }
])

Opérations d'interrogation sur les chaînes

MongoDB offre diverses façons d'interroger des données de type chaîne :

// Trouvez les produits par nom exact
db.products.find({ name: "Montre intelligente" })

// Recherche insensible à la casse en utilisant une expression régulière
db.products.find({ brand: { $regex: /tech/i } })

// Recherche dans un tableau de tags
db.products.find({ tags: "électronique" })

Méthodes de manipulation de chaînes

Vous pouvez également effectuer des opérations sur les chaînes :

// Mettez à jour la description
db.products.updateOne(
    { name: "Casques sans fil" },
    { $set: { description: description.toUpperCase() } }
)

// Vérifiez la longueur de la chaîne
db.products.find({
    $expr: { $gt: [{ $strLenCP: "$name" }, 10] }
})

Points clés à retenir

  • Les chaînes dans MongoDB sont encodées en UTF-8
  • Utilisez $regex pour la correspondance de motifs
  • Les tableaux peuvent contenir des éléments de type chaîne
  • MongoDB prend en charge diverses méthodes de manipulation de chaînes

Utiliser les valeurs booléennes

Dans cette étape, vous allez apprendre à travailler avec les types de données booléens dans MongoDB, en explorant la manière de stocker, interroger et utiliser des valeurs true/false dans votre base de données.

Comprendre les types booléens dans MongoDB

Les valeurs booléennes sont cruciales pour représenter des conditions true/false dans vos données. Nous allons continuer à utiliser notre base de données existante pour démontrer les opérations booléennes.

Tout d'abord, assurez-vous d'être dans le shell MongoDB :

mongosh

Changez vers la base de données existante :

use numbers_lab

Insérer des documents avec des champs booléens

Ajoutons des produits avec des attributs booléens :

db.products.insertMany([
    {
        name: "Haut-parleur Bluetooth Premium",
        isWireless: true,
        isInStock: true,
        hasBluetooth: true,
        supportsBattery: true
    },
    {
        name: "Casque de jeu câblé",
        isWireless: false,
        isInStock: false,
        hasBluetooth: false,
        supportsBattery: false
    }
])

Opérations d'interrogation booléennes

MongoDB offre des façons puissantes d'interroger des champs booléens :

// Trouvez les produits sans fil
db.products.find({ isWireless: true })

// Trouvez les produits qui ne sont pas en stock
db.products.find({ isInStock: false })

// Interrogations booléennes complexes
db.products.find({
    $and: [
        { isWireless: true },
        { hasBluetooth: true }
    ]
})

Mettre à jour les valeurs booléennes

Vous pouvez facilement mettre à jour des champs booléens :

// Mettez à jour le statut d'inventaire
db.products.updateOne(
    { name: "Casque de jeu câblé" },
    { $set: { isInStock: true } }
)

// Inversez une valeur booléenne
db.products.updateOne(
    { name: "Haut-parleur Bluetooth Premium" },
    { $not: { isWireless: true } }
)

Points clés à retenir

  • Les valeurs booléennes sont soit true soit false
  • Utilisez des opérateurs logiques tels que $and, $or pour les interrogations complexes
  • Les champs booléens sont utiles pour les drapeaux et le suivi des états
  • MongoDB traite les champs booléens comme tout autre type de données

Stockage des dates et heures

Dans cette étape, vous allez apprendre à travailler avec les types de données date et heure dans MongoDB, en explorant diverses façons de stocker, interroger et manipuler des données temporelles.

Comprendre les types de date dans MongoDB

MongoDB offre des capacités puissantes de gestion des dates et des heures. Nous allons continuer à utiliser notre base de données existante pour démontrer les opérations sur les dates.

Tout d'abord, assurez-vous d'être dans le shell MongoDB :

mongosh

Changez vers la base de données existante :

use numbers_lab

Insérer des documents avec des champs de date

Ajoutons des produits avec différents champs liés à la date :

db.products.insertMany([
    {
        name: "Laptop Pro",
        releaseDate: new Date(),
        lastUpdated: new Date(),
        warrantyExpiration: new Date("2025-12-31"),
        manufacturingDate: new Date("2023-01-15")
    },
    {
        name: "Smartphone Elite",
        releaseDate: new Date("2023-06-01"),
        lastUpdated: new Date(),
        warrantyExpiration: new Date("2024-06-01"),
        manufacturingDate: new Date("2023-05-15")
    }
])

Opérations d'interrogation sur les dates

MongoDB offre des capacités d'interrogation sur les dates sophistiquées :

// Trouvez les produits lancés après une date spécifique
db.products.find({
    releaseDate: { $gt: new Date("2023-01-01") }
})

// Trouvez les produits dont la garantie expire l'année prochaine
db.products.find({
    warrantyExpiration: {
        $gte: new Date(),
        $lt: new Date(new Date().setFullYear(new Date().getFullYear() + 1))
    }
})

// Obtenez les produits fabriqués dans un mois spécifique
db.products.find({
    $expr: {
        $eq: [{ $month: "$manufacturingDate" }, 5]
    }
})

Méthodes de manipulation des dates

Vous pouvez effectuer diverses opérations liées aux dates :

// Mettez à jour la date de dernière mise à jour
db.products.updateOne(
    { name: "Laptop Pro" },
    { $currentDate: { lastUpdated: true } }
)

// Ajoutez des jours à une date
db.products.updateOne(
    { name: "Smartphone Elite" },
    {
        $set: {
            extendedWarranty: new Date(
                new Date("2024-06-01").setDate(
                    new Date("2024-06-01").getDate() + 30
                )
            )
        }
    }
)

Points clés à retenir

  • MongoDB stocke les dates comme des objets de date complets
  • Utilisez new Date() pour créer un horodatage actuel
  • Comparez les dates en utilisant des opérateurs de comparaison
  • MongoDB fournit des méthodes pour extraire les composants de la date
  • Les dates sont stockées en UTC par défaut

Gérer les ObjectIds

Dans cette étape, vous allez découvrir les ObjectIds dans MongoDB, comprendre comment ils fonctionnent comme des identifiants uniques et comment les manipuler dans votre base de données.

Comprendre les ObjectIds dans MongoDB

Les ObjectIds sont des identifiants spéciaux automatiquement générés par MongoDB pour chaque document. Nous allons explorer leurs caractéristiques et leur utilisation.

Tout d'abord, assurez-vous d'être dans le shell MongoDB :

mongosh

Changez vers la base de données existante :

use numbers_lab

Création et examen des ObjectIds

Insérons des documents et examinons leurs identifiants uniques :

// Insérez un document et observez son ObjectId
db.users.insertOne({
    username: "johndoe",
    email: "john@example.com",
    registrationDate: new Date()
})

// Récupérez le document inséré
const newUser = db.users.findOne({ username: "johndoe" })

Propriétés et méthodes des ObjectIds

Les ObjectIds contiennent plusieurs propriétés intéressantes :

// Obtenez le timestamp de l'ObjectId
const timestamp = newUser._id.getTimestamp()
print("Document créé le :", timestamp)

// Générez un nouvel ObjectId
const customId = new ObjectId()
print("Nouvel ObjectId personnalisé :", customId)

Travailler avec les ObjectIds dans les requêtes

Vous pouvez utiliser les ObjectIds pour une récupération précise de documents :

// Trouvez le document par son ObjectId exact
db.users.findOne({ _id: newUser._id })

// Vérifiez si un ObjectId est valide
const isValid = ObjectId.isValid(newUser._id)
print("L'ObjectId est-il valide?", isValid)

Opérations avancées sur les ObjectIds

MongoDB fournit des méthodes pour extraire et manipuler les ObjectIds :

// Comparez les ObjectIds
const anotherUser = db.users.insertOne({
    username: "janedoe",
    email: "jane@example.com"
})

// Vérifiez si un ObjectId est inférieur à un autre
const isEarlier = newUser._id < anotherUser.insertedId
print("L'ID du premier utilisateur est-il plus ancien?", isEarlier)

Points clés à retenir

  • Les ObjectIds sont des identifiants uniques de 12 octets
  • Ils contiennent un timestamp, un identifiant de machine, un ID de processus et une valeur aléatoire
  • Chaque document reçoit un ObjectId automatique si non spécifié
  • Les ObjectIds peuvent être utilisés pour le tri et le suivi de la date de création des documents

Sommaire

Dans ce laboratoire, vous avez appris à travailler avec différents types de données numériques dans MongoDB, y compris les entiers et les nombres à virgule flottante. Vous avez exploré les façons d'insérer, interroger et mettre à jour des données numériques, en utilisant des opérateurs tels que $gt, $lt et $inc. De plus, vous avez acquis une compréhension de la gestion des données de type chaîne, de l'utilisation de valeurs booléennes, du stockage d'informations de date et d'heure, et de la gestion des ObjectIds dans votre base de données MongoDB.

Vous avez également appris à effectuer diverses opérations sur les chaînes, telles que l'interrogation, la mise à jour et la manipulation de données textuelles. Le laboratoire a couvert l'utilisation de différents opérateurs et méthodes liés aux chaînes fournis par MongoDB pour travailler efficacement avec des informations textuelles dans vos applications.