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

Chr*_*sen 0 ruby arrays sorting mongodb mongoid

我有两个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">]
Run Code Online (Sandbox Code Playgroud)

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

all_types = user.first_types+user.second_types
Run Code Online (Sandbox Code Playgroud)

我现在希望按属性排序all_types数组datetime(最新的datetime,所以SecondType对象应该是第一个).

我已经尝试过传统的Mongoid和Ruby数组方法,但是当我混合使用Mongoid文档时它们似乎不起作用.有任何想法吗?

mae*_*ics 5

使用Enumerable#sort_by和否定"datetime"属性的数值以降序排列:

all_types.sort_by { |x| -x.datetime.to_f }
Run Code Online (Sandbox Code Playgroud)

  • @RubyLovely:当然,任何人都可以.你可以,例如!=) (2认同)