sql >> Base de Datos >  >> NoSQL >> MongoDB

Eliminación del elemento de matriz en mongoDB según la posición del elemento

De la documentación:

{ $pull : { field : {$gt: 3} } } removes array elements greater than 3

Así que supongo que puedes hacer algo como esto por ahora:

{ $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 

O intente actualizar usando operador de posición , supongo que debería ser algo como esto:

  { $pull : "field.4" } 

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

Es solo una sugerencia, porque no puedo probarlo ahora.

Actualización:

Parece que no puedes hacerlo bien en un solo paso (hay tal error en jira )

Pero puede eliminar el uso de un elemento no establecido en la posición y que extraiga elementos con valor nulo:

{$unset : {"array.4" : 1 }}
{$pull : {"array" : null}}