2017-08-22 24 views
0

Ich möchte die letzten 2 Elemente aus einem Array-Objekt löschen.Lösche die letzten 2 Elemente aus dem Array in mongodb

{ 
    "_id" : ObjectId("597973c8c9fadd14e8ea51bb"), 
    "values" : [1,2,3,4,5,6] 
} 

Ich habe $ Pop versucht, aber es nur ein Element jedes Mal löschen. Gibt es einen bequemen Weg?

+0

Es gibt andere Möglichkeiten, aber die allgemeinen Vermutungen basieren darauf, dass Sie die Anzahl der Elemente im Array vorher kennen. Wenn Sie beispielsweise wissen, dass Sie das Array auf insgesamt 4 Elemente reduzieren möchten, oder wenn Sie beim Hinzufügen neuer Elemente insgesamt nur sechs Elemente beibehalten möchten, können Sie das auch tun. Kurz gesagt, es gibt wahrscheinlich eine bessere Lösung für einen "echten Anwendungsfall" als den trivialen, den Sie präsentieren. Wenn Sie also den Grund beschreiben, warum Sie es wirklich tun wollen, könnte Ihnen eine bessere Lösung präsentiert werden. –

Antwort

1

Es gibt keine Möglichkeit, dies zu tun, soweit ich weiß. Das nächste, was Sie tun können, wäre wahrscheinlich, die Liste in Ihrer Anwendung zu erhalten ($slice, um es kleiner zu machen, wenn Sie bevorzugen), legen Sie die letzten n Elemente in ein Array und machen Sie eine $pull. Es wird jedoch alle ähnlichen Elemente ziehen.

Wenn das keine Option ist, scheint die Wiederholung der einzige Weg zu sein.

Verwandte Themen