Fra dokumentation:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3
Så jeg formoder, at du kan gøre sådan noget for nu:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position
Eller prøv at opdatere med positionsoperatoren , jeg formoder, at det burde være noget som dette:
{ $pull : "field.4" }
{ $pull : {"field.$": 4}}
Det er kun et forslag, for jeg kan ikke teste det lige nu.
Opdatering:
Det ser ud til, at du ikke kan gøre det rigtigt ved i ét trin (der er sådan en fejl i jira )
Men du kan fjerne ved at bruge unset element i position og at trække elemets med null værdi:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}