MongoEngine排序嵌入式文档

时间:2012-01-16 16:28:39

标签: python mongodb mongoengine

我在MongoEngine中拥有当前模型:

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

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

我的所有帖子都是这样的:

posts = Post.objects.all()

然后我可以遍历帖子然后发表评论,但获取post.comments列表。

但我不确定如何按日期对每个帖子的评论列表进行排序。我知道这些评论是按时间顺序添加的,但我如何在评论的升序/降序之间切换,即最新的评论呢?

我试过meta属性无济于事:

meta = {
    'ordering': ['-pub_date']
}

思想?

1 个答案:

答案 0 :(得分:3)

SortedListField确保在写入数据库之前对集合进行排序,因此在这种情况下mongo不会进行任何排序。如果你按时间顺序对它们进行排序,为什么不直接按照时间顺序反转列表呢? :)