如何对蒙古文档数组进行排序(数组包含不同的蒙古文档类型)



我有两个Mongoid文档数组,FirstType文档和SecondType文档。两者都嵌入在User

user.first_types  =  [#<FirstType _id: 51a10b4883c336ebef0002a8, created_at: 2013-05-25 19:04:40 UTC, updated_at: 2013-05-25 19:04:40 UTC, datetime: 2013-03-28 15:03:22 UTC, text: "Hello 1">]
user.second_types = [#<SecondType _id: 51a6058783c3368a62000003, created_at: 2013-05-29 13:41:27 UTC, updated_at: 2013-05-29 13:41:27 UTC, datetime: 2013-05-29 08:23:27 UTC, text: "Hello 2">]

然后我用这行代码合并它们:

all_types = user.first_types+user.second_types

我现在希望按属性datetime对all_types数组进行排序(首先是最新的datetime,因此SecondType对象应该是第一个)。

我已经尝试了传统的Mongoid和Ruby数组方法,但是当我混淆了Mongoid文档时,它们似乎不起作用。什么好主意吗?

使用Enumerable#sort_by并按降序否定"datetime"属性的数值:

all_types.sort_by { |x| -x.datetime.to_f }

相关内容

  • 没有找到相关文章

最新更新