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