MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Removendo o elemento array no mongoDB com base na posição do elemento


Da documentação:
{ $pull : { field : {$gt: 3} } } removes array elements greater than 3

Então, suponho que você possa fazer algo assim por enquanto:
{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 

Ou tente atualizar usando o operador de posição , suponho que deve ser algo assim:
  { $pull : "field.4" } 

  { $pull : {"field.$": 4}}

É apenas uma sugestão, pois não posso testar agora.

Atualização:

Parece que você não pode fazer isso certo em uma etapa (existe um bug in jira )

Mas você pode remover usando o elemento unset na posição e que puxa os elementos com valor nulo:
{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}