Maison > base de données > MongoDB > Comment supprimer des éléments d'un tableau par index dans MongoDB ?

Comment supprimer des éléments d'un tableau par index dans MongoDB ?

PHPz
Libérer: 2023-09-08 12:17:02
avant
1025 Les gens l'ont consulté

如何在 MongoDB 中通过索引删除数组元素?

Vous pouvez supprimer des éléments du tableau par index en utilisant les deux étapes suivantes -

La première étape est la suivante -

db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
Copier après la connexion

La syntaxe ci-dessus placera une valeur nulle à l'emplacement de "yourIndexValue". Après cela, vous devez extraire les valeurs nulles du champ du tableau pour les supprimer des éléments du tableau.

La deuxième étape est la suivante -

db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
Copier après la connexion

Pour implémenter la syntaxe, créons une collection avec des documents. La requête pour créer une collection à l'aide de documents est la suivante : 

> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David",
   "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803")
}
Copier après la connexion

Affichez tous les documents de la collection à l'aide de la méthode find(). La requête est la suivante -

> db.removeArrayElementByItsIndexDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Ce qui suit est le résultat -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}
Copier après la connexion

Il s'agit de la requête pour supprimer les éléments du tableau par index.

Étape 1 - La requête est la suivante -

> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Copier après la connexion

Étape 2 -La requête est la suivante -

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Copier après la connexion

Vérifions si l'élément du tableau "Java" a été supprimé. La requête est la suivante -

> db.removeArrayElementByItsIndexDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Ce qui suit est le résultat -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}
Copier après la connexion

En regardant l'exemple de sortie, l'élément de tableau "Java" a été complètement supprimé.

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