Ich benutze Mongoengine mit Django.Mongoengine Filterabfrage in der Liste eingebettetes Feld basierend auf dem letzten Index
Ich habe ein eingebettetes Feld in meinem Modell. Das ist ein Listenfeld von eingebetteten Dokumenten.
import mongoengine
class OrderStatusLog(mongoengine.EmbeddedDocument):
status_code = mongoengine.StringField()
class Order(mongoengine.DynamicDocument):
incr_id = mongoengine.SequenceField()
status = mongoengine.ListField(mongoengine.EmbeddedDocumentField(OrderStatusLog))
Jetzt möchte ich das Ergebnis auf Order
Sammlung filtern, basierend auf dem letzten Wert in status
Feld.
z.B. Order.objects.filter(status__last__status_code="scode")
Ich denke, es gibt keine solche Sache __last
. Ich habe versucht, den Ansatz in der Doku http://docs.mongoengine.org/guide/querying.html#querying-lists erwähnt, hat aber nicht funktioniert.
Ich kann dies lösen, indem ich alle Dokumente in der Sammlung überschlinge, aber das ist nicht effizient, wie können wir diese Abfrage effizient schreiben.
Ich denke, Sie sollten Ihre Frage Python zu markieren, so dass 1/es als Python Frage 2 aufgeführt ist/es bekommt automatische Syntax-Highlighting. (Alternativ können Sie '' vor dem Codeblock angeben: http://stackoverflow.com/editing-help#syntax-highlighting) –