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

Fjernelse af array-elementet i mongoDB baseret på elementets position

Fra dokumentation:

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

Så jeg formoder, at du kan gøre sådan noget for nu:

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

Eller prøv at opdatere med positionsoperatoren , jeg formoder, at det burde være noget som dette:

  { $pull : "field.4" } 

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

Det er kun et forslag, for jeg kan ikke teste det lige nu.

Opdatering:

Det ser ud til, at du ikke kan gøre det rigtigt ved i ét trin (der er sådan en fejl i jira )

Men du kan fjerne ved at bruge unset element i position og at trække elemets med null værdi:

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


  1. Konverter streng til dato eller ISODate ved hjælp af Mongo Shell i MongoDB

  2. mongodb få optælling uden at gentage find

  3. Redis failover med StackExchange / Sentinel fra C#

  4. Hvordan kan jeg kontrollere, at en given dato ligger mellem to datoer i mongodb?