Maison > interface Web > js tutoriel > Comment supprimer un objet spécifique d'un tableau dans MongoDB ?

Comment supprimer un objet spécifique d'un tableau dans MongoDB ?

DDD
Libérer: 2024-11-02 07:26:29
original
1054 Les gens l'ont consulté

How to Remove a Specific Object from an Array in MongoDB?

MongoDB : Supprimer un objet d'un tableau

Problème :

Dans MongoDB, comment extraire un objet spécifique à partir d'un tableau intégré dans un document ? Dans le document d'exemple, nous souhaitons supprimer l'objet avec l'identifiant : 23 du tableau items.

Solution :

Pour y parvenir, utilisez l'opérateur $pull avec une requête plus spécifique pour faire correspondre l'objet souhaité dans le tableau.

Requête MongoDB :

db.mycollection.update(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    false, // Upsert
    true // Multi
);
Copier après la connexion

Explication :

  • Opérateur $pull : utilisé pour supprimer un élément d'un tableau.
  • { items: { id: 23 } } : Spécifiez l'objet imbriqué à supprimer en faisant correspondre son champ spécifique.
  • Upsert : défini sur false pour empêcher la création d'un nouveau document si la mise à jour ne correspond à aucun document existant.
  • Multi : défini sur true pour appliquer la mise à jour à plusieurs documents correspondants (bien qu'il ne devrait y avoir qu'une seule correspondance dans ce cas).

Node.js/Mongoose :

Dans Mongoose, vous pouvez utiliser la requête suivante :

<code class="javascript">MyModel.findOneAndUpdate(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }
);</code>
Copier après la connexion

Remarque : MongoDB 3.6 prend également en charge l'opérateur $elemMatch en conjonction avec $pull pour un filtrage plus complexe au sein des tableaux.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal