Maison > base de données > MongoDB > le corps du texte

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

PHPz
Libérer: 2023-09-08 12:17:02
avant
929 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!

source:tutorialspoint.com
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!