如何使用Mongoid按嵌入文档中的字段对MongoDB集合进行排序?

时间:2011-03-01 16:43:21

标签: mongodb mongoid

我想使用Mongoid运行此查询:

db.users.find().sort({'users.roles.name':1})

Mongoid会是什么样子?或者也许有一种简单的方法让Mongoid只执行自定义查询?

3 个答案:

答案 0 :(得分:5)

首先,您可以回答一个简单的问题:如何按数组对文档进行排序?是的,我也不知道..

我认为您可以使用位置运算符按​​特定角色排序:

db.users.find().sort({'roles.0.name':1})

但是我不确定并且不能正确地测试它并且它不完全是你所需要的。无论如何,你可以测试并返回结果,否则我明天就会弄明白。

答案 1 :(得分:4)

User.asc("roles.name")应该为你做。

答案 2 :(得分:1)

这将有效:

db.users.find().sort("{\"roles\":{\"name\":1}}");