MongoEngine排序嵌入文档
问题描述:
我在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 = {
'ordering': ['-pub_date']
}
的思考?
答
SortedListField确保集合被排序之前写入数据库,所以在这种情况下mongo不会做任何排序。如果你将它们按时间顺序排序,为什么不按照时间倒序的顺序来恢复列表? :)
是的,这是我的计划B :)我可以在查询返回结果后处理评论列表,但我只是想知道是否有方法在查询级别执行此操作。 – GivP 2012-01-16 16:53:04
mongo可以根据某些字段对返回的文档进行排序,但排序并不意味着要在返回的文档中重新排列数组。 – milan 2012-01-16 17:03:50