Não há uma maneira direta de puxar/remover pelo índice da matriz. Na verdade, esta é uma questão aberta http://jira.mongodb.org/browse/SERVER-1014 , você pode votar nele.
A solução alternativa é usar $unset e depois $pull:
db.lists.update({}, {$unset : {"interests.3" : 1 }})
db.lists.update({}, {$pull : {"interests" : null}})
Atualização:como mencionado em alguns dos comentários, essa abordagem não é atômica e pode causar algumas condições de corrida se outros clientes lerem e/ou gravarem entre as duas operações. Se precisarmos que a operação seja atômica, poderíamos:
- Leia o documento do banco de dados
- Atualize o documento e remova o item da matriz
- Substitua o documento no banco de dados. Para garantir que o documento não foi alterado desde que o lemos, podemos usar o padrão update if atual descrito nos documentos do mongo