获取具有字段最大值的对象[Mongoid]

时间:2012-03-30 06:49:46

标签: ruby-on-rails ruby mongodb mongoid

无论如何都要返回对象而不是Method:

中的值
Mongoid::Contexts::Enumerable#max

Link to the rdoc

一个简单的例子是,如果您有用户集合,并且他们都有字段:age =>我可以获得最大的用户或者我应该使用别的东西

1 个答案:

答案 0 :(得分:11)

one_of_oldest_users = User.desc(:age).limit(1).first

这会让你成为年龄最大的用户之一(如果有几个用户)。如果你想要全部,最简单的方法是使用两遍。

max_age = User.max(:age)
oldest_users = User.where(age: max_age)

# or, if you like one-liners
oldest_users = User.where(age: User.max(:age))

为了使这些查询更有效,您当然需要:age上的索引。