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 に答える