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
PHPzavant
2023-09-08 12:17:02977parcourir

如何在 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 }});

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}});

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")
}

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

> db.removeArrayElementByItsIndexDemo.find().pretty();

Ce qui suit est le résultat -

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

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 })

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

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

> db.removeArrayElementByItsIndexDemo.find().pretty();

Ce qui suit est le résultat -

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

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer