MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Suppression de l'élément de tableau dans mongoDB en fonction de la position de l'élément

À partir de la documentation :

{ $pull : { field : {$gt: 3} } } removes array elements greater than 3

Donc je suppose que vous pouvez faire quelque chose comme ça pour l'instant :

{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 

Ou essayez de mettre à jour en utilisant opérateur de position , je suppose que ça devrait être quelque chose comme ça :

  { $pull : "field.4" } 

  { $pull : {"field.$": 4}}

Ce n'est qu'une suggestion, car je ne peux pas le tester pour le moment.

Mise à jour :

Il semble que vous ne puissiez pas le faire correctement en une seule étape (il y a un tel bogue dans jira )

Mais vous pouvez supprimer l'utilisation d'un élément non défini en position et tirer des éléments avec une valeur nulle :

{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}