MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Entfernen des Array-Elements in mongoDB basierend auf der Position des Elements

Aus Dokumentation:

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

Ich nehme an, dass Sie vorerst so etwas tun können:

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

Oder versuchen Sie es mit dem Positionsoperator , ich nehme an, es sollte ungefähr so ​​​​aussehen:

  { $pull : "field.4" } 

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

Es ist nur ein Vorschlag, da ich es gerade nicht testen kann.

Aktualisierung:

Anscheinend können Sie es nicht in einem Schritt richtig machen (es gibt einen solchen Fehler in Jira ). )

Aber Sie können entfernen, indem Sie ein nicht festgelegtes Element in Position verwenden und Elemente mit einem Nullwert ziehen:

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