2014-04-10 19 views
5

Peki Peşinde olduğum bir şey gibi:Mongoengine: Gömülü belge alan tarafından Gömülü Belge listesini sıralamak nasıl

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

class Post(Document): 
    title = StringField() 
    comments = SortedListField(EmbeddedDocumentField(Comment)) 
    post_date = DateTimeField() 
Varsayılan olarak

, yorum gönderme kronolojik bu tür, ama ben yapmak istiyorum Katıştırılmış yorum belgelerinin upvotes özniteliğine göre SortedListField. Bu mümkün mü ve eğer öyleyse nasıl yaparım?

cevap

5

Bu aslında documentation kendisinden net değilse unit tests ele alınmıştır: Yani "sipariş" anahtar kelimesini ekleyerek

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

alan ürün belirtilmesi değiştirildiğinde göre sıralama sağlar. Muhtemelen, en yüksek "upvotes" değerinin de ilk sırada olduğundan emin olmak için ters bildirimi de isteyebilirsiniz.

Ünite testleri aslında başka bazı kullanımları da göstermektedir, bu yüzden muhtemelen anlaşılması zor kullanımları bulmak için her zaman iyi bir kaynaktır.