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

Comment supprimer un objet d'un tableau dans MongoDB ?

Susan Sarandon
Libérer: 2024-11-01 02:29:02
original
384 Les gens l'ont consulté

How do I remove an object from an array in MongoDB?

MongoDB : Supprimer un objet d'un tableau

Dans MongoDB, vous pouvez supprimer un objet d'un tableau intégré dans un document à l'aide du $ opérateur de traction. Si vous souhaitez supprimer un objet spécifique d'un tableau, vous devez fournir une requête qui correspond à l'objet exact.

Considérez le document suivant :

<code class="json">{
   _id: 5150a1199fac0e6910000002,
   name: 'some name',
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}</code>
Copier après la connexion

Pour supprimer l'élément avec l'identifiant : 23 du tableau items, utilisez la commande suivante :

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

Cette commande met à jour le document en supprimant l'élément du tableau. La requête spécifie le document à l'aide du champ _id et l'opérateur $pull cible le tableau items. Dans l'opération $pull, vous pouvez spécifier une requête correspondant à l'objet à supprimer. Dans ce cas, nous faisons correspondre l'objet avec l'identifiant : 23.

Implémentation Mongoose/Node.js

Dans Mongoose, vous pouvez supprimer un objet d'un tableau en utilisant le Méthode pull() :

<code class="javascript">const Model = mongoose.model('Model', new mongoose.Schema({
  items: [{
    id: Number,
    name: String
  }]
}));

Model.update(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }, // Update all matching documents
  (err, result) => { if (!err) console.log(result); }
);</code>
Copier après la connexion

Ce code supprimera l'élément avec l'identifiant : 23 du tableau items de tous les documents qui correspondent au _id spécifié.

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