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

Tod*_*dev 6 ruby ruby-on-rails mongodb mongoid

无论如何返回对象而不是Method中的值:

Mongoid::Contexts::Enumerable#max
Run Code Online (Sandbox Code Playgroud)

链接到rdoc

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

Ser*_*sev 11

one_of_oldest_users = User.desc(:age).limit(1).first
Run Code Online (Sandbox Code Playgroud)

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

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))
Run Code Online (Sandbox Code Playgroud)

为了使这些查询高效,您:age当然需要一个索引.