Mongoengine: cómo ordenar la lista de documentos incrustados por campo de documento incrustado

Así que lo que busco es algo como:

class Comment(EmbeddedDocument): content = StringField() upvotes = IntField() pub_date = DateTimeField() class Post(Document): title = StringField() comments = SortedListField(EmbeddedDocumentField(Comment)) post_date = DateTimeField() 

Por defecto, esto se ordena por orden cronológico de envío de comentarios, pero quiero hacer que SortedListField ordene por el atributo upvotes de los documentos de comentarios incrustados. ¿Es esto posible, y si es así, cómo lo hago?

Esto está realmente cubierto en las pruebas unitarias, si no está claro en la propia documentación :

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

Por lo tanto, agregar la palabra clave “ordenando” permite que el campo se clasifique cuando se modifican los elementos para ser especificados. Probablemente también desee que la statement inversa se asegure de que el valor más alto de “upvotes” también sea el primero.

Las pruebas de unidad en realidad muestran otros usos, por lo que siempre son una buena fuente para descubrir usos posiblemente oscuros.