Maison > base de données > MongoDB > Comment ajouter, supprimer, modifier et vérifier la base de données MongoDB

Comment ajouter, supprimer, modifier et vérifier la base de données MongoDB

Robert Michael Kim
Libérer: 2025-03-04 18:14:12
original
570 Les gens l'ont consulté

MongoDB CRUD Operations: insertion, mise à jour, supprimer et interroger les données

MongoDB offre un moyen flexible et efficace d'effectuer des opérations de création, de lecture, de mise à jour et de supprimer (CRUD). Explorons comment effectuer chacune de ces actions.

Insertion de données:

L'insertion de documents dans une collection MongoDB est simple. Vous pouvez utiliser la méthode insertOne() pour insérer un seul document ou insertMany() pour insérer plusieurs documents. Voici un exemple utilisant le Shell MongoDB:

// Insert a single document
db.myCollection.insertOne( { name: "John Doe", age: 30, city: "New York" } );

// Insert multiple documents
db.myCollection.insertMany( [
  { name: "Jane Doe", age: 25, city: "London" },
  { name: "Peter Jones", age: 40, city: "Paris" }
] );
Copier après la connexion

Les pilotes comme Node.js ou Python offrent des méthodes similaires, souvent avec des fonctionnalités ajoutées pour la gestion des erreurs et les opérations asynchrones. Par exemple, dans Node.js à l'aide du pilote MongoDB:

const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017"; // Replace with your connection string
const client = new MongoClient(uri);

async function run() {
  try {
    await client.connect();
    const database = client.db('myDatabase');
    const collection = database.collection('myCollection');

    const doc = { name: "Alice", age: 28, city: "Tokyo" };
    const result = await collection.insertOne(doc);
    console.log(`A document was inserted with the _id: ${result.insertedId}`);
  } finally {
    await client.close();
  }
}
run().catch(console.dir);
Copier après la connexion

Mise à jour des données:

MongoDB fournit plusieurs façons de mettre à jour les documents. updateOne() met à jour un seul document correspondant à une requête, tandis que updateMany() met à jour plusieurs documents. Vous utilisez l'opérateur $set pour modifier les champs dans un document. Voici un exemple en utilisant le shell MongoDB:

// Update a single document
db.myCollection.updateOne( { name: "John Doe" }, { $set: { age: 31 } } );

// Update multiple documents
db.myCollection.updateMany( { age: { $lt: 30 } }, { $set: { city: "Unknown" } } );
Copier après la connexion

similaires updateOne() et updateMany() Les méthodes existent dans divers pilotes.

La suppression de données:

La suppression des documents implique à l'aide de deleteOne() pour supprimer un document de correspondance unique et deleteMany() pour supprimer plusieurs documents correspondants. Les bibliothèques fournissent des fonctions équivalentes.

// Delete a single document
db.myCollection.deleteOne( { name: "Jane Doe" } );

// Delete multiple documents
db.myCollection.deleteMany( { city: "Unknown" } );
Copier après la connexion

Données de requête:

La récupération des données de MongoDB est effectuée en utilisant la méthode . Cette méthode permet une requête puissante en utilisant divers opérateurs et conditions.

find() La méthode

renvoie un curseur, que vous pouvez itérater pour accéder aux documents individuels. Les conducteurs fournissent des méthodes pour gérer efficacement les curseurs.
// Find all documents
db.myCollection.find();

// Find documents where age is greater than 30
db.myCollection.find( { age: { $gt: 30 } } );

// Find documents and project specific fields
db.myCollection.find( { age: { $gt: 30 } }, { name: 1, age: 1, _id: 0 } ); // _id: 0 excludes the _id field
Copier après la connexion

Interroger efficacement de grands ensembles de données dans MongoDB find()

interroger efficacement de grands ensembles de données dans MongoDB nécessite une compréhension des techniques d'indexation et d'optimisation des requêtes. Les index sont cruciaux pour accélérer les requêtes. Créez des index sur les champs fréquemment interrogés. Utilisez les opérateurs de requête appropriés et évitez d'utiliser des clauses

(qui sont lentes). Analyser les plans d'exécution de requête en utilisant

pour identifier les goulots d'étranglement et optimiser vos requêtes. Envisagez d'utiliser des pipelines d'agrégation pour des requêtes complexes impliquant plusieurs étapes de traitement. Le Sharding peut distribuer des données sur plusieurs serveurs pour une amélioration de l'évolutivité et des performances de requête sur des ensembles de données extrêmement importants.

$where Les meilleures pratiques pour assurer l'intégrité des données lors de l'exécution des opérations CRUD dans MongoDB explain()

La maintenance de l'intégrité des données dans MongoDB implique plusieurs pratiques clés:

  • Validation des données: Utiliser la validation du schéma pour appliquer les types de données et les contraintes sur vos documents. Cela empêche les données non valides d'être insérées dans votre collection.
  • Transactions (pour MongoDB 4.0 et ultérieurement): Utilisez des transactions multi-documents pour assurer l'atomicité lors de l'exécution de plusieurs opérations CRUD dans une seule unité logique de travail. Cela empêche les mises à jour ou les incohérences partielles.
  • Gestion des erreurs: Implémentez une gestion des erreurs robuste dans votre code d'application pour gérer gracieusement les problèmes potentiels pendant les opérations CRUD (par exemple, les erreurs de réseau, les erreurs clés en double). Cela aide à déboguer, à l'audit de la sécurité et à la récupération des données.
  • Sauvegardes régulières: Sauvegarder régulièrement vos données MongoDB pour protéger contre la perte de données due à une défaillance matérielle ou à d'autres événements imprévus. CRUD opére directement contre la base de données. C'est idéal pour les tests rapides et les requêtes ad hoc. Cependant, pour les applications de production, l'utilisation d'un pilote (comme Node.js, Python, Java, etc.) est essentielle. Les pilotes proposent:
  • Gestion des erreurs et gestion des exceptions:
  • Les conducteurs fournissent des mécanismes intégrés pour la gestion des erreurs et des exceptions, qui sont cruciaux pour construire des applications robustes. Le shell fournit une gestion des erreurs moins robuste.

Opérations asynchrones:

Les pilotes prennent en charge les opérations asynchrones, permettant à votre application de rester réactive tout en effectuant des opérations de base de données potentiellement longues. The shell is synchronous.

  • Connection Pooling: Drivers manage database connections efficiently through connection pooling, improving performance and resource utilization.
  • Integration with Application Frameworks: Drivers integrate seamlessly with various application frameworks and programming languages, simplifying Développement.
  • Sécurité: Les pilotes offrent souvent des fonctionnalités de sécurité améliorées telles que le chiffrement et l'authentification de la connexion.
  • Bien que le shell soit précieux pour l'apprentissage et l'expérimentation, les pilotes sont nécessaires pour créer des applications prête à la production qui nécessitent une gestion des erreurs robuste, des opérations asynchrones et une gestion efficace des ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal