Из документации:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3
Итак, я полагаю, что сейчас вы можете сделать что-то вроде этого:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position
Или попробовать обновить, используя оператор позиции ,Я полагаю, что-то вроде этого:
{ $pull : "field.4" }
{ $pull : {"field.$": 4}}
Это всего лишь предложение, потому что я не могу проверить это прямо сейчас.
Обновление:
Кажется, вы не можете сделать это правильно, за один шаг (есть такая ошибка в jira )
Но вы можете удалить, используя unset элемент в позиции, и который вытягивает элементы с нулевым значением:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}