Maison  >  Article  >  interface Web  >  Comment supprimer un objet d'un tableau dans MongoDB ?

Comment supprimer un objet d'un tableau dans MongoDB ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 18:32:29702parcourir

How to Remove an Object from an Array in MongoDB?

Suppression d'un objet d'un tableau dans MongoDB

Lorsque vous traitez des documents contenant des tableaux, il peut être nécessaire d'en supprimer des objets spécifiques . Ceci est généralement observé avec les documents qui stockent une liste d'éléments ou des entrées similaires. Dans MongoDB, il existe un opérateur désigné, appelé $pull, spécialement conçu à cet effet.

L'exemple fourni illustre un document avec un tableau d'éléments. L'objectif est de supprimer l'objet item dont l'identifiant est égal à 23. La tentative initiale d'utilisation de $pull est incorrecte, car elle tente de faire correspondre le champ id directement dans l'instruction $pull, ce qui n'est pas la syntaxe correcte.

Pour réussir à supprimer l'objet souhaité, la requête correcte est :

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

Cette requête spécifie qu'elle souhaite mettre à jour le document avec le _id donné, et dans cette mise à jour, elle applique le Opérateur $pull au tableau items, faisant correspondre chaque élément du tableau avec un identifiant de 23.

Pour ceux qui utilisent Mongoose/Node.js, l'extrait de code équivalent est :

<code class="javascript">Model.updateOne(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    function(err, result) {
        // Handle error or result
    }
);</code>

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:
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