Z dokumentacji:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3
Przypuszczam więc, że na razie możesz zrobić coś takiego:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position
Lub spróbuj zaktualizować za pomocą operatora pozycji , przypuszczam, że powinno być mniej więcej tak:
{ $pull : "field.4" }
{ $pull : {"field.$": 4}}
To tylko sugestia, ponieważ nie mogę tego teraz przetestować.
Aktualizacja:
Wygląda na to, że nie możesz tego zrobić dobrze, wiedząc w jednym kroku (jest taki błąd w jira )
Ale możesz usunąć za pomocą unset elementu na pozycji i wyciągnąć elementy o wartości null:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}