MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Rimozione dell'elemento dell'array in mongoDB in base alla posizione dell'elemento

Dalla documentazione:

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

Quindi suppongo che tu possa fare qualcosa del genere per ora:

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

Oppure prova ad aggiornare utilizzando operatore di posizione , suppongo che dovrebbe essere qualcosa del genere:

  { $pull : "field.4" } 

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

È solo un suggerimento, perché al momento non posso testarlo.

Aggiornamento:

Sembra che tu non possa farlo bene lo sai in un solo passaggio (c'è un tale bug in jira )

Ma puoi rimuovere usando unset element in position e che pull elemets con valore nullo:

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