sql >> Databáze >  >> NoSQL >> MongoDB

Odstranění prvku pole v mongoDB na základě pozice prvku

Z dokumentace:

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

Takže předpokládám, že teď můžete udělat něco takového:

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

Nebo zkuste aktualizovat pomocí operátor pozice , předpokládám, že by to mělo být něco takového:

  { $pull : "field.4" } 

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

Je to pouze návrh, protože to teď nemohu otestovat.

Aktualizace:

Zdá se, že to nemůžete udělat správně v jednom kroku (v jira je taková chyba )

Ale můžete odstranit pomocí unset element in position a to pull elemets s nulovou hodnotou:

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


  1. Uložená procedura v MongoDB

  2. Aplikace Spring Data rest nezískává data z databáze po implementaci ukládání do mezipaměti redis

  3. Vrácení Mono<UpdateResult> se šablonou Reactive MongoDB

  4. $sum ze skupiny dokumentů a vnořených dokumentů od $author (MongoDB)