来自文档:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3
Run Code Online (Sandbox Code Playgroud)
所以我想你现在可以做这样的事情:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position
Run Code Online (Sandbox Code Playgroud)
或者尝试使用位置运算符进行更新,我想应该是这样的:
{ $pull : "field.4" }
{ $pull : {"field.$": 4}}
Run Code Online (Sandbox Code Playgroud)
这只是一个建议,因为我现在无法测试它.
更新:
但是您可以使用未设置的元素移除位置并使用null值拉取elemets:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}
Run Code Online (Sandbox Code Playgroud)