2011-01-07 103 views
1

我在Mongoid中有2个类:主题&后。主题引用了许多帖子。MongoDB/Mongoid:按引用文档ID排序

我想通过帖子的ID降序排列主题,以便最近的帖子位于顶部。

@topics = Topic.order_by(:last_message.created_at.desc) 

这显然不起作用。

有没有办法做到这一点?

回答

2

更好的方法是在主题中创建额外字段'LastMessageCreated'并在每个帖子后保存发布日期,并通过'LastMessageCreated'排序主题。

+0

呀,我想到了这一点。 – Alex 2011-01-07 07:56:43

+0

通常的做法是有额外的字段进行过滤和排序以及搜索。 – 2011-01-07 08:00:33

0

这个怎么样?

@topics = Topic.desc('posts.created_at') 

或者

@topics = Topic.order_by('posts.created_at',:desc) 
0

Topic.all(sort: [[:created_at, :desc]])