2014-04-10 3 views
5

So Embedded Document Liste sortieren, was ich bin nach ist so etwas wie:Mongoengine: Wie von Embedded Dokumentenfeld

class Comment(EmbeddedDocument): 
    content = StringField() 
    upvotes = IntField() 
    pub_date = DateTimeField() 

class Post(Document): 
    title = StringField() 
    comments = SortedListField(EmbeddedDocumentField(Comment)) 
    post_date = DateTimeField() 

Standardmäßig ist diese Art durch die chronologische Reihenfolge der Kommentar Vorlage, aber ich möchte machen Die SortedListField Sortierung nach dem upvotes Attribut der eingebetteten Kommentardokumente. Ist das möglich und wenn ja, wie gehe ich vor? angegeben

class Post(Document): 
    title = StringField() 
    comments = SortedListField(EmbeddedDocumentField(Comment) 
           ordering="upvotes", reverse=True) 
    post_date = DateTimeField() 

So Hinzufügen des „Ordnung“ Schlüsselwort ermöglicht das Feld zu sortieren, wenn die Gegenstände geändert werden:

Antwort

5

in den unit tests wenn nicht klar von den documentation selbst diese tatsächlich bedeckt. Wahrscheinlich möchten Sie auch, dass die umgekehrte Anweisung dafür sorgt, dass auch der höchste "upvotes" -Wert zuerst angezeigt wird.

Die Komponententests zeigen tatsächlich einige andere Verwendungen und sind daher immer eine gute Quelle, um möglicherweise undurchsichtige Verwendungen herauszufinden.