sql >> Database >  >> NoSQL >> MongoDB

Het array-element in mongoDB verwijderen op basis van de positie van het element

Uit documentatie:

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

Dus ik neem aan dat je voorlopig zoiets als dit kunt doen:

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

Of probeer bij te werken met positie-operator , ik veronderstel dat het zoiets als dit moet zijn:

  { $pull : "field.4" } 

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

Het is slechts een suggestie, want ik kan het nu niet testen.

Bijwerken:

Het lijkt erop dat je het niet in één stap goed kunt doen (er is zo'n bug in jira )

Maar je kunt verwijderen door het unset-element in positie te gebruiken en dat trekelementen met een null-waarde:

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


  1. Welke versie van MongoDB is geïnstalleerd op Ubuntu

  2. Mongo Query een genest veld binnen een array.

  3. MongoDb-queryvoorwaarde bij het vergelijken van 2 velden

  4. Browser Reload:gaat niet terug naar de geselecteerde pagina, gaat naar de standaard startpagina - ReactJs