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 个回答
3
SortedListField 确保在写入数据库之前,数据集合是排好序的,这样 MongoDB 就不需要再进行排序了。如果你的数据已经按时间顺序排好了,那为什么不把这个列表反转一下,按照相反的时间顺序来遍历呢? :)