Từ tài liệu:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3
Vì vậy, tôi cho rằng bạn có thể làm điều gì đó như thế này ngay bây giờ:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position
Hoặc thử cập nhật bằng cách sử dụng toán tử vị trí , tôi cho rằng nên giống như thế này:
{ $pull : "field.4" }
{ $pull : {"field.$": 4}}
Nó chỉ là một gợi ý, vì tôi không thể kiểm tra nó ngay bây giờ.
Cập nhật:
Có vẻ như bạn không thể làm đúng chỉ trong một bước (có lỗi trong jira )
Nhưng bạn có thể xóa bằng cách sử dụng phần tử chưa được đặt ở vị trí và kéo các đường cao lên có giá trị null:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}