2

我在 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 = {
    'ordering': ['-pub_date']
}

想法?

4

1 回答 1

3

SortedListField 确保在写入数据库之前对集合进行排序,因此在这种情况下 mongo 不会进行任何排序。如果您按时间顺序对它们进行排序,为什么不将列表还原为按时间倒序进行迭代呢?:)

于 2012-01-16T16:38:29.537 回答